همه برنامهنویسها در مواقعی باید کد موجود را بازنویسی کنند. اما قبل از این که بخواهی این کار را بکنی، لطفا به موارد پایین فکر کن چون اینها میتواند باعث صرفهجویی زیادی در زمان تو و دیگران بشود و البته کاهش درد و رنج:

همه برنامهنویسها در مواقعی باید کد موجود را بازنویسی کنند. اما قبل از این که بخواهی این کار را بکنی، لطفا به موارد پایین فکر کن چون اینها میتواند باعث صرفهجویی زیادی در زمان تو و دیگران بشود و البته کاهش درد و رنج:
نقل قولی از افلاطون است که من فکر میکنم خصوصا برای توسعه دهندگان مناسب است و باید آن را در نزدیک قلبشان نگه دارند:
«زیبایی متن و هماهنگی و ظرافت و جذابیت و موزونی بسته به سادگی است.»
این گفته همه آن چیزی که ما به عنوان توسعه دهنده نرمافزار در آرزوی آن هستیم را در یک جمله بیان میکند.
چیزهایی هستند که ما تلاش میکنیم در کد خود داشته باشیم:
شما هم قطعا در چنین موقعیتی بودهاید. در زمان شروع پروژه همه افراد مقاصد خوبی دارند که اسمش را میگذارم «راهحلهای پروژه جدید.» بسیاری از این راهحلها در اغلب موارد در مستندات نوشته میشوند. آنهایی که مربوط به کدنویسی هستند در بخش «استانداردهای کدنویسی پروژه» میآیند. در طول جلسه آغازین، توسعهدهنده ارشد از مستند عبور کرده و در بهترین حالت همه توافق میکنند که از آن مستند پیروی کنند. با این حال با شروع پروژه این مقاصد خوب یکی یکی کنار گذاشته میشوند. در نهایت وقتی که پروژه تحویل شد، کد شلوغ و کثیف به نظر میرسد و هیچکس نمیداند که چرا این اتفاق افتاده است.
ما معمولا عادت داریم که فرض کنیم دیگر آدمها مثل ما فکر میکنند. اما اینگونه نیست. روانشناسان این گرایش را «سوگیری اجماعی خطا» مینامند. وقتی که مردم برخلاف ما فکر یا عمل میکنند، ما (ناخودآگاه) شدیدا به آنها برچسب ناقص میزنیم.
این سوگیری توضیح میدهد که چرا زمانی که برنامهنویسان خودشان را به جای کاربر میگذارند بسیار تحت فشار هستند. کاربران مثل برنامهنویسها فکر نمیکنند. مثلا آنها زمان بسیار کمتری را به استفاده از رایانههای صرف میکنند. آنها نه میدانند که یک رایانه چطور کار میکند و نه به آن اهمیتی میدهند. یعنی آنها از تکنیکهای حل مساله که برای برنامهنویسان بسیار آشنا است سر در نمیآورند. آنها نمیتوانند الگوها و نشانههایی را که برنامهنویسها از آنها در کارشان استفاده میکنند تشخیص بدهند.
«هر کاری که به عهده میگیری، با احتیاط عمل کن و نتایج آن را در نظر داشته باش» -آنون
هر چقدر که یک برنامه زمانی در آغاز راحت به نظر برسد، نمیتوانی از فشار کاری در برخی زمانها جلوگیری کنی. اگر مجبور باشی بین «درست انجام بده» و «سریع انجام بده» یکی را انتخاب کنی، معمولا با درک این مسأله که بعدا برمیگردی و درستش میکنی، انتخاب «سریع انجام بده» خوشایندتر است. وقتی به خودت یا تیمت یا مشتریات این قول را میدهی واقعا منظورت این است که آن را انجام میدهی. اما تقریبا همیشه دوره بعدی مشکلات خودش را به همراه دارد و تمام توجه تو بر روی آنها متمرکز میشود. این به تعویق انداختن کارها معروف است به «بدهی فنی» و قطعا دوست تو نیست. «مارتین فاولر» در ردهبندی بدهیهای فنی این مسأله را به طور خاص «بدهی فنی تعمدی» مینامد و نباید آن را با «بدهی فنی غفلت شده» اشتباه گرفت.
در این ویدئو هادی حریری در رویداد google IO 2017 به معرفی زبان برنامهنویسی جدید کاتلین میپردازد. اگر علاقهمند به یادگیری زبان برنامهنویسی کاتلین هستید، تماشای این ارائه جذاب و دیدنی را از دست ندهید!
برنامهنویسها یا توسعهدهندگان سیستمهای نرمافزاری هر روز با مسائل و مشکلاتی روبرو میشوند که شاید در سایر شغلها کمتر کسی به چنین مسائلی برخورد کند. نگاه طنز هم که در بین توسعهدهندگان بسیار رواج دارد، پس چرا با خودمان کمی شوخی نکنیم؟ در اینترنت گیفهای زیادی با این موضوع وجود دارد که در این مطلب تعدادی از آنها را با هم میبینیم. امیدوارم برای چند لحظه هم که شده لبخند روی لبتان بنشیند.
محاسبه اندازه یک تصویر برای چگالی تصاویر مختلف در اندروید همیشه سخت بوده چرا که لازم است اولا نسبتهای مختلف را باید به خاطر بیاورید و بعدهم، باید محاسبات را انجام دهید
مثلا اگر یک عکس داشته باشید که برای چگالی xxxhdpi باشد و عرض آن ۱۲۰۰ پیکسل باشد، برای اندازه xhdpi اندازهاش چقدر باید باشد؟
برای حل این مشکل به ظاهر ساده، ولی سخت یک فایل اکسل ساده درست کردم به صورت زیر:
کار با این فایل اکسل بسیار ساده است. اندازه تصویر موجود را در چگالی مد نظر در سمت چپ وارد میکنید و در سمت راست، اندازه تصویر در چگالیهای مختلف به شما نمایش داده میشوند!
مثلا در این حالت، تصویری که من داشتم مناسب برای چگالی xxhdpi با عرض ۱۸۴ پیکسل بود. متناسب با این تصویر، میتوانم برای چکالی ldpi تصویری با عرض ۶۹ پیکسل، متناسب با چگالی mdpi تصویری با عرض ۹۲ پیکسل و …. قرار دهم
دانلود فایل اکسل برای تبدیل چگالیهای مختلف اندروید به هم
مقدمه
احتمالا شما هم تا الان بالاخره اسم اندروید استودیو به گوشتان خورده است. پارسال همین موقع خبر انتشار نسخه ۰.۸ اندروید استودیو را به شما اطلاع داده بودم! اندروید استودیو را اولین بار در نسخه ۰.۴ دانلود و تست کردم. هنوز تا یک محیط برنامهنویسی یکپارچه (Integrated Development Environment یا IDE) مناسب فاصله زیادی داشت و البته طبیعی هم بود. به هر حال خود گوگل هم مدعی نبود که ابزار کاملی ساخته است! به هر حال آنقدر منتظر ماندم تا نسخه کامل آن عرضه شود. بالاخره با عرضه نسخه ۱.۰ در شرکت تصمیم گرفتیم تا از این IDE جدید استفاده کنیم. ابتدای کار با مشکلاتی برخورد کردیم ولی به مرور این مشکلات را حل کردیم و الان همه در شرکت از اندروید استودیو استفاده میکنیم. آخرین نسخه اندروید استودیو در زمان نوشتن این مطلب نسخه ۱.۴ است و این نشان میدهد که گوگل به سرعت در حال ارتقای این IDE است.
اما چرا باید حتماً اندروید استودیو را تست کنید و سعی کنید به کار کردن با آن عادت کنید؟ دلیل اصلی این است که گوگل به زودی پشتیبانی از ADT (پلاگین توسعه اندروید در اکلیپس) را متوقف خواهد کرد و آن وقت شما چه بخواهید چه نخواهید مجبورید از اندروید استودیو استفاده کنید. اما این تنها دلیل نیست. اندروید استودیو در همین نسخههای اولیهاش امکانات خوبی ارائه کرده است که تا قبل از آن باید دردسر زیادی را متحمل میشدید. یک دلیل بزرگ دیگر برای استفاده از اندروید استودیو استفاده آن از سیستم Build بسیار پیشرفته گریدل (Gradle) در برابر سیستم قدیمیتر انت (Ant) در اکلیپس است. در این مطلب به برخی از مزایای عمده گریدل نسبت به انت اشاره خواهیم کرد. یک دلیل دیگر که خیلیها را تشویق به استفاده از اندروید استودیو میکند، برنامه پایه آن است: IntelliJ IDEA که به طور خلاصه آیدیا خوانده میشود. ممکن است متوجه شباهت بسیار زیاد اندروید استودیو با IntelliJ IDEA شده باشید. شرکت JetBrains که مالک IDEA است، هسته آن را با نام IDEA Platform به صورت کدباز منتشر کرده است تا شرکتهای دیگر بتوانند از آن به عنوان پایهای برای ساخت IDE های دیگر استفاده کنند. از آنجایی که خیلی برنامهنویسان جاوا سالها است با IDEA کار کردهاند و میتوان گفت تمام ریزهکاریهای آن را میدانند، استفاده از Android Studio برای آنها خیلی ساده است!
امیدوارم با همه دلایل ذکر شده فوق متقاعد شده باشید!
من برنامه نویسی از جزیره مایکروسافت هستم، جایی که ابزارهای جادویی ویژوال استودیو کار را آنچنان ساده کرده که حتی متوجه فرآیند های پیچیده آن نمی شویم.
یکی از بهترین کارهایی که ویژوال استودیو انجام می دهد تولید خودکار کدهایی هست که شما هیچگاه آنها را ندیده اید، ولی همیشه از آن استفاده کرده اید. مثلا Web Form ها دارای ابزارهایی هستند که به راحتی در کد پس زمینه با شناسه (ID) شان قابل دسترس هستند. شما احتمالا هیچگاه متوجه فرآیندی که ویژوال استودیو به صورت خودکار انجام میدهد نشده اید. ویژوال استودیو، کد های markup (موجود در فایل های ASPX و ASCX) را پردازش کرده و فایل های متناسب با آن را تولید می کند. سپس این کلاس تولید شده را در کنار کلاس کد پس زمینه (Code Behind) قرار می دهد و شما بدون اینکه متوجه باشید از پراپرتی هایی که در کلاس دوم تعریف شده اند استفاده می کند.