Forwarded from امیر مهرانی
🌀 بقیهاش به من مربوط نیست!
از سختترین آدمهایی که میشود با آنها کار کرد کسانی هستند که میگن من کار خودم رو انجام دادم و باقیاش به من مربوط نیست!
احتمالا بین همکارانمون یا در ادارهها نمونه این افراد را دیدهایم یا کارمان پیششان گیر کرده.
این افراد عقیده دارند که مگر چقدر پول میگیرم که بخوام کار دیگهای انجام بدم؟
همهی ما بخشی از یک سیستم هستیم که در تعامل با دیگر اجزا قرار داریم. اگر این تعامل را درست برقرار نکنیم و در زمانهای درست بده بستانهای لازم را نداشته باشیم، کم کم کل سیستم مختل میشود و از اختلال سیستم همه ضرر میکنند از جمله همان فرد اول.
همین افراد هم معمولا منتقدین بزرگ سیستمهای کاری هستند و به همه چیز ایراد میگیرند.
مدیران هم معمولا به چنین افرادی کمتر اعتماد میکنند چون میدانند آنها به درخواستهای خارج از چارچوب پاسخ نخواهند داد و بجای تمرکز بر راهحل صرفا غر میزنند.
کار برای این افراد صرفا وظیفهای است که باید انجام شود. معمولا این افراد جزو گروهی هستند که کارشان را دوست ندارند و بهاجبار در چنین موقعیتی قرار گرفتهاند و حتی بیرون از محیط کار هم حال چندان خوبی ندارند.
اگر کسی به کارش علاقه داشته باشد برای آن مرز و محدوده قائل نیست.
بزرگترین لطف یک نفر به خودش و اطرافیانش این است که تلاش کند در موقعیتی باشد که بیشتر احساس خوشحالی میکند.
دلیلی ندارد هزینهی بیعلاقگی این افراد را خانواده، دوستان، همکاران و مخاطبان بدهند.
#امیرمهرانی
@thecoach_ir
از سختترین آدمهایی که میشود با آنها کار کرد کسانی هستند که میگن من کار خودم رو انجام دادم و باقیاش به من مربوط نیست!
احتمالا بین همکارانمون یا در ادارهها نمونه این افراد را دیدهایم یا کارمان پیششان گیر کرده.
این افراد عقیده دارند که مگر چقدر پول میگیرم که بخوام کار دیگهای انجام بدم؟
همهی ما بخشی از یک سیستم هستیم که در تعامل با دیگر اجزا قرار داریم. اگر این تعامل را درست برقرار نکنیم و در زمانهای درست بده بستانهای لازم را نداشته باشیم، کم کم کل سیستم مختل میشود و از اختلال سیستم همه ضرر میکنند از جمله همان فرد اول.
همین افراد هم معمولا منتقدین بزرگ سیستمهای کاری هستند و به همه چیز ایراد میگیرند.
مدیران هم معمولا به چنین افرادی کمتر اعتماد میکنند چون میدانند آنها به درخواستهای خارج از چارچوب پاسخ نخواهند داد و بجای تمرکز بر راهحل صرفا غر میزنند.
کار برای این افراد صرفا وظیفهای است که باید انجام شود. معمولا این افراد جزو گروهی هستند که کارشان را دوست ندارند و بهاجبار در چنین موقعیتی قرار گرفتهاند و حتی بیرون از محیط کار هم حال چندان خوبی ندارند.
اگر کسی به کارش علاقه داشته باشد برای آن مرز و محدوده قائل نیست.
بزرگترین لطف یک نفر به خودش و اطرافیانش این است که تلاش کند در موقعیتی باشد که بیشتر احساس خوشحالی میکند.
دلیلی ندارد هزینهی بیعلاقگی این افراد را خانواده، دوستان، همکاران و مخاطبان بدهند.
#امیرمهرانی
@thecoach_ir
10 PHP functions and code snippets to work with dates http://www.catswhocode.com/blog/10-php-functions-and-code-snippets-to-work-with-dates
Cats Who Code
10 PHP functions and code snippets to work with dates
Dates are always an important part of any website or app, but they can be a little tricky to deal with, especially for beginners. Here is a list of a few PHP functions and code snippets that will definitely come in handy when dealing with dates.
آشنایی با قوانین پنج گانه ی SOLID
اصول #SOLID دربرگیرنده ی اصولی در برنامه نویسی شیء گرایی است که در اوایل سال 2000 توسط مهندسی به نام Robert Martin که تحت عنوان Uncle Bob یا «عمو باب» شناخته میشود ابداع شد. وقتی این اصول به درستی در کنار یکدیگر به کار گرفته شوند، این امکان را به برنامه نویس یا توسعهدهنده میدهند تا با سهولت بیشتری به توسعه ی نرم افزارهای خود بپردازد. علاوه بر این، به کارگیری اصول SOLID این امکان را به برنامه نویسان خواهد داد تا با رویکردی چابک به توسعه ی نرم افزارهای خود پرداخته، از مرتکب شدن اشتباهات کوچک جلوگیری کنند و در صورت نیاز هم به سادگی اقدام به بازنویسی کدهای خود کنند.
http://bit.ly/28WJ3is
اصول #SOLID دربرگیرنده ی اصولی در برنامه نویسی شیء گرایی است که در اوایل سال 2000 توسط مهندسی به نام Robert Martin که تحت عنوان Uncle Bob یا «عمو باب» شناخته میشود ابداع شد. وقتی این اصول به درستی در کنار یکدیگر به کار گرفته شوند، این امکان را به برنامه نویس یا توسعهدهنده میدهند تا با سهولت بیشتری به توسعه ی نرم افزارهای خود بپردازد. علاوه بر این، به کارگیری اصول SOLID این امکان را به برنامه نویسان خواهد داد تا با رویکردی چابک به توسعه ی نرم افزارهای خود پرداخته، از مرتکب شدن اشتباهات کوچک جلوگیری کنند و در صورت نیاز هم به سادگی اقدام به بازنویسی کدهای خود کنند.
http://bit.ly/28WJ3is
Sokanacademy
آشنایی با قوانین پنج گانه ی SOLID
در این آموزش با قوانین پنج گانه ی SOLID در برنامه نویسی شیء گرایی آشنا خواهیم شد.
آموزش اصول برنامه نویسی
در این دوره ی آموزشی، با تاریخچه ی برنامه نویسی، تفاوت زبان های برنامه نویسی مختلف و همچنین اصول برنامه نویسی آشنا خواهیم شد. این دوره مناسب برای کاربرانی است که تازه قصد ورود به دنیای برنامه نویسی را دارند.
مقالات بسیار خوبی در این دوره وجود دارد که توصیه میشود حتی حرفه ای ها هم حتما نگاهی به آنها بیاندازند.
http://bit.ly/296bAWZ
در این دوره ی آموزشی، با تاریخچه ی برنامه نویسی، تفاوت زبان های برنامه نویسی مختلف و همچنین اصول برنامه نویسی آشنا خواهیم شد. این دوره مناسب برای کاربرانی است که تازه قصد ورود به دنیای برنامه نویسی را دارند.
مقالات بسیار خوبی در این دوره وجود دارد که توصیه میشود حتی حرفه ای ها هم حتما نگاهی به آنها بیاندازند.
http://bit.ly/296bAWZ
Sokanacademy
آموزش اصول برنامه نویسی
در این دوره ی آموزشی، با تاریخچه ی برنامه نویسی، اصول برنامه نویسی، زبان های برنامه نویسی مختلف و ... آشنا خواهیم شد
مقالات مفید فارسی برای برنامهنویسان اندروید
سایت کمالان که توسط مهندس حسام الدین کمالان تاسیس شده است را می توان به عنوان یکی از مراجع آموزش اپلیکیشن نویسی برای سیستم عامل محبوب اندروید در وب فارسی قلمداد کرد. دوره های آموزشی این سایت از مبتدی شروع شده و تا مباحث متوسطه و پیشرفته ی برنامه نویسی اندروید ادامه می یابند.
http://www.kamalan.com/blog/
سایت کمالان که توسط مهندس حسام الدین کمالان تاسیس شده است را می توان به عنوان یکی از مراجع آموزش اپلیکیشن نویسی برای سیستم عامل محبوب اندروید در وب فارسی قلمداد کرد. دوره های آموزشی این سایت از مبتدی شروع شده و تا مباحث متوسطه و پیشرفته ی برنامه نویسی اندروید ادامه می یابند.
http://www.kamalan.com/blog/
نود و هفت چیزی که هر برنامه نویسی باید بداند: بدهی فنی
پیش میآید که می بایست مابین «انجام اصولی یک پروژه» و «انجام سریع یک پروژه» یکی را انتخاب کنیم و در ابتدای کار سرعت بخشیدن به فرایند طراحی یک پروژه جذابتر به نظر میرسد با این استدلال که بعداً هم میشود مجدد به کدها سر زد و اگر مشکلی داشت آن ها را از بین برد! اما تجربه نشان داده است زمانی که در بر گیرنده واژه ی بعداً است، خود حاوی بسیاری باگ ها و مشکلات خواهد بود که برنامه نویس مجبور است بیشتر تمرکز خود را روی آنها بگذارد و از توجه به مشکلات -هرچند جزئی- گذشته باز می ماند.
چنین سیاستی در برنامه نویسی اصطلاحاً Technical Debt گفته میشود که به صورت تحت الفظی میتوان آن را به «بدهی فنی» ترجمه کرد این بدهی فنی اصلاً چیز خوبی نیست و گاهی اوقات منجر به بوجود آمدن فجایعی در تولید نرم افزار می شود. برای روشن شدن این مسأله مثالی می زنیم. بدهی فنی همچون وام گرفتن است که در کوتاه مدت کار ما را راه میاندازد اما غافل از این که در آینده می بایست با بهره ای که روی آن میآید -مثلا 30 درصد بیشتر- قرض خود را پرداخت کنیم.
در برنامه نویسی هم قضیه دقیقاً به همین صورت است. اگرچه گاهی اوقات میتوان از راه کارهایی استفاده کرد که به کدنویسی ما سرعت بخشند اما این در حالی است که در آینده اضافه کردن ویژگیهای جدیدی به پروژه را دشوار میسازد و به اصطلاح نمیتوان به سادگی کدهای خود را Refactor کرد. جالب اینجا است که هرچه از زمان ایجاد این دست مشکلات بیشتر می گذرد، یافتن راهکار هم برای آنها دشوارتر خواهد شد. اما اگر ما از زمان بندی پروژه عقب باشیم و مجبور باشیم سرعت عمل را بر کیفیت ترجیح دهیم چطور؟ توصیه ما این است که هرگز سیاست فدا کردن کیفیت کار به خاطر سرعت بخشیدن به آن را دنبال نکنید اما اگر واقعاً مجبور هستید، پس این کار را انجام دهید اما حتماً به خاطر داشته باشید که شما با این کار یک بدهی فنی برای خود ایجاد کردهاید که می بایست در اولین فرصت این بدهی خود را صاف کنید. برای این منظور هم، حتماً در مستندات پروژه این قضیه را ذکر کنید تا فراموش نشود که در غیر این صورت ممکن است مجبور شوید بهای گزافی بابت آن پرداخت کنید.
📌 منبع: https://goo.gl/0GSHll
پیش میآید که می بایست مابین «انجام اصولی یک پروژه» و «انجام سریع یک پروژه» یکی را انتخاب کنیم و در ابتدای کار سرعت بخشیدن به فرایند طراحی یک پروژه جذابتر به نظر میرسد با این استدلال که بعداً هم میشود مجدد به کدها سر زد و اگر مشکلی داشت آن ها را از بین برد! اما تجربه نشان داده است زمانی که در بر گیرنده واژه ی بعداً است، خود حاوی بسیاری باگ ها و مشکلات خواهد بود که برنامه نویس مجبور است بیشتر تمرکز خود را روی آنها بگذارد و از توجه به مشکلات -هرچند جزئی- گذشته باز می ماند.
چنین سیاستی در برنامه نویسی اصطلاحاً Technical Debt گفته میشود که به صورت تحت الفظی میتوان آن را به «بدهی فنی» ترجمه کرد این بدهی فنی اصلاً چیز خوبی نیست و گاهی اوقات منجر به بوجود آمدن فجایعی در تولید نرم افزار می شود. برای روشن شدن این مسأله مثالی می زنیم. بدهی فنی همچون وام گرفتن است که در کوتاه مدت کار ما را راه میاندازد اما غافل از این که در آینده می بایست با بهره ای که روی آن میآید -مثلا 30 درصد بیشتر- قرض خود را پرداخت کنیم.
در برنامه نویسی هم قضیه دقیقاً به همین صورت است. اگرچه گاهی اوقات میتوان از راه کارهایی استفاده کرد که به کدنویسی ما سرعت بخشند اما این در حالی است که در آینده اضافه کردن ویژگیهای جدیدی به پروژه را دشوار میسازد و به اصطلاح نمیتوان به سادگی کدهای خود را Refactor کرد. جالب اینجا است که هرچه از زمان ایجاد این دست مشکلات بیشتر می گذرد، یافتن راهکار هم برای آنها دشوارتر خواهد شد. اما اگر ما از زمان بندی پروژه عقب باشیم و مجبور باشیم سرعت عمل را بر کیفیت ترجیح دهیم چطور؟ توصیه ما این است که هرگز سیاست فدا کردن کیفیت کار به خاطر سرعت بخشیدن به آن را دنبال نکنید اما اگر واقعاً مجبور هستید، پس این کار را انجام دهید اما حتماً به خاطر داشته باشید که شما با این کار یک بدهی فنی برای خود ایجاد کردهاید که می بایست در اولین فرصت این بدهی خود را صاف کنید. برای این منظور هم، حتماً در مستندات پروژه این قضیه را ذکر کنید تا فراموش نشود که در غیر این صورت ممکن است مجبور شوید بهای گزافی بابت آن پرداخت کنید.
📌 منبع: https://goo.gl/0GSHll
Sokanacademy
نود و هفت چیزی که هر برنامه نویسی باید بداند: بدهی فنی
در این آموزش با ملاحظه کاری در توسعه ی نرم افزار آشنا خواهیم شد و می بینیم که گاها چنین کاری صدمات جبران ناپذیری به سیکل تولید نرم افزار وارد می سازد.
«اگر شما از اولین نسخه نرمافزار خود حالتان بهم نخورد، شک نداشته باشید که نرمافزار خود را خیلی دیر به بازار عرضه کرده اید!»
راید هافمن، موسس لینکدین
راید هافمن، موسس لینکدین
کدهای نرمافزارهای موفق چه ویژگی دارند؟
تنوع کدهای نرمافزاری در جهان بسیار زیاد شده است. گوگل بهتنهایی بیش از دو میلیارد دستور برنامهنویسی را در مخزن کدهایش نگهداری میکند؛ اما همه کدها با یکدیگر یکسان نیستند. طراحان نرمافزارها معمولاً از استراتژیهای خاصی برای بهینهسازی کدهای خود استفاده میکنند؛ اما سؤال اصلی این است که چه عواملی باعث میشوند تا کدهای یک نرمافزار متمایز از کدهای نرمافزار دیگر شده و چه عواملی باعث میشوند، برنامهنویسان حرفهای، یک کد نرمافزاری را خوب یا بد قلمداد کنند؟
http://goo.gl/92m33G
تنوع کدهای نرمافزاری در جهان بسیار زیاد شده است. گوگل بهتنهایی بیش از دو میلیارد دستور برنامهنویسی را در مخزن کدهایش نگهداری میکند؛ اما همه کدها با یکدیگر یکسان نیستند. طراحان نرمافزارها معمولاً از استراتژیهای خاصی برای بهینهسازی کدهای خود استفاده میکنند؛ اما سؤال اصلی این است که چه عواملی باعث میشوند تا کدهای یک نرمافزار متمایز از کدهای نرمافزار دیگر شده و چه عواملی باعث میشوند، برنامهنویسان حرفهای، یک کد نرمافزاری را خوب یا بد قلمداد کنند؟
http://goo.gl/92m33G
Shabakeh-Mag
کدهای نرمافزارهای موفق چه ویژگی دارند؟ | شبکه
تنوع کدهای نرمافزاری در جهان بسیار زیاد شده است. گوگل بهتنهایی بیش از دو میلیارد دستور برنامهنویسی را در مخزن کدهایش نگهداری میکند؛ اما همه کدها با یکدیگر یکسان نیستند. طراحان نرمافزارها معمولاً از استراتژیهای خاصی برای بهینهسازی کدهای خود استفاده…
معرفی crashlytics
اگر برنامهنویس اندروید (یا iOS. این سولوشن برای هر دو پلتفورم معرفی شده) باشید، احتمالا یکی دوتا چیز شما رو خیلی اذیت کرده. اول اینکه هر دفعه که ماژول یا بخش جدیدی به نرمافزارتون اضافه میکنید باید یه APK بگیرید و برای کارفرما، مدیر پروژه، مدیر محصول، بقیه برنامهنویسها، تست کنندهها، یا کلا هر کسی که درگیر پیشروی پروژه و تست کردنشه بفرستید. احتمالا اینجوری عمل میکنید که APK رو به همراه کمی توضیحات ایمیل میکنید یا میذارید دراپ باکس یا تو حالت رو مخ ترش تلگرام میکنید. بعد میشینید منتظر نظرات اونا و گزارش خطاهای احتمالی. مشکل دوم هم وقتی پیش میاد که گزارش خطا میگیرید. تو اینجور مواقع احتمالا جملاتی میشنوید مثل: اومدم لاگین کنم کرش کرد! یا “اصن باز نمیشه!” و حالا تازه نوبت شما میشه که جملاتشون رو رمزگشایی کنید و بفهمید ایراد کار از کجا بوده.
خب، حالا من میخوام ابزاری رو به شما معرفی کنم که هر دو این مشکلات رو حل میکنه.
http://thearash.net/?p=399
اگر برنامهنویس اندروید (یا iOS. این سولوشن برای هر دو پلتفورم معرفی شده) باشید، احتمالا یکی دوتا چیز شما رو خیلی اذیت کرده. اول اینکه هر دفعه که ماژول یا بخش جدیدی به نرمافزارتون اضافه میکنید باید یه APK بگیرید و برای کارفرما، مدیر پروژه، مدیر محصول، بقیه برنامهنویسها، تست کنندهها، یا کلا هر کسی که درگیر پیشروی پروژه و تست کردنشه بفرستید. احتمالا اینجوری عمل میکنید که APK رو به همراه کمی توضیحات ایمیل میکنید یا میذارید دراپ باکس یا تو حالت رو مخ ترش تلگرام میکنید. بعد میشینید منتظر نظرات اونا و گزارش خطاهای احتمالی. مشکل دوم هم وقتی پیش میاد که گزارش خطا میگیرید. تو اینجور مواقع احتمالا جملاتی میشنوید مثل: اومدم لاگین کنم کرش کرد! یا “اصن باز نمیشه!” و حالا تازه نوبت شما میشه که جملاتشون رو رمزگشایی کنید و بفهمید ایراد کار از کجا بوده.
خب، حالا من میخوام ابزاری رو به شما معرفی کنم که هر دو این مشکلات رو حل میکنه.
http://thearash.net/?p=399
قانون DRY
قانون DRY مخفف واژگان Don`t Repeat Yourself به معنی «هرگز کار تکراری نکنید!» است. اگر در کدنویسی مواقعی برای ما پیش میآید که قطعه کدی را از جایی در سورس کد کپی کرده سپس در جای دیگر دقیقاً همان قطعه کد را پیست می کنیم، بر اساس قانون DRY این کار کاملاً اشتباه است.
در چنین مواقعی ما به سادگی میتوانیم کدهای این چنین را در قالب متدهای مختلفی ایجاد کرده و هر کجا که به آن کد نیاز داشتیم، متد مد نظر را Call یا «فراخوانی» کنیم. علاوه بر این، اگر در آینده بخواهیم در قطعه کد خاصی تغییری ایجاد کنیم، صرفاً نیاز خواهیم داشت تا این تغییر را در یک جا اعمال کرده که در نتیجه تغییر مد نظر ما در هر کجایی که آن متد را فراخوانی کرده باشیم اعمال خواهد شد.
قانون DRY مخفف واژگان Don`t Repeat Yourself به معنی «هرگز کار تکراری نکنید!» است. اگر در کدنویسی مواقعی برای ما پیش میآید که قطعه کدی را از جایی در سورس کد کپی کرده سپس در جای دیگر دقیقاً همان قطعه کد را پیست می کنیم، بر اساس قانون DRY این کار کاملاً اشتباه است.
در چنین مواقعی ما به سادگی میتوانیم کدهای این چنین را در قالب متدهای مختلفی ایجاد کرده و هر کجا که به آن کد نیاز داشتیم، متد مد نظر را Call یا «فراخوانی» کنیم. علاوه بر این، اگر در آینده بخواهیم در قطعه کد خاصی تغییری ایجاد کنیم، صرفاً نیاز خواهیم داشت تا این تغییر را در یک جا اعمال کرده که در نتیجه تغییر مد نظر ما در هر کجایی که آن متد را فراخوانی کرده باشیم اعمال خواهد شد.
«قانون YAGNI»
قانون YAGNI که مخفف واژگان You Ain`t Gonna Need It به معنی «بعید به نظر می رسه که در آینده بهش نیاز داشته باشی!» است. برای برنامه نویسان -به خصوص برای برنامه نویسان مبتدی- بسیار پیش میآید که دوست دارند برنامههایی که مینویسند کامل و جامع باشند و جالب است بدانیم که در برخی مواقع برنامه نویسان دچار وسواس فکری میشوند به این شکل که میخواهند در برنامه ی مد نظرشان تمامی ایدههایی که دارند اعمال شوند.
راحت بگوییم که این سیاست در توسعه ی نرمافزار کاری بس اشتباه است! اگر شما با خود فکر میکنید که مثلاً فلان قابلیت در آینده ممکن است به کار آید، می بایست دست نگه دارید. صرفاً روی قابلیتهای کلیدی نرمافزار تمرکز کنید و در صورتی که در آینده نیاز به قابلیت جدیدی داشتید، در زمان مناسب آن قابلیت را خواهید افزود.
قانون YAGNI که مخفف واژگان You Ain`t Gonna Need It به معنی «بعید به نظر می رسه که در آینده بهش نیاز داشته باشی!» است. برای برنامه نویسان -به خصوص برای برنامه نویسان مبتدی- بسیار پیش میآید که دوست دارند برنامههایی که مینویسند کامل و جامع باشند و جالب است بدانیم که در برخی مواقع برنامه نویسان دچار وسواس فکری میشوند به این شکل که میخواهند در برنامه ی مد نظرشان تمامی ایدههایی که دارند اعمال شوند.
راحت بگوییم که این سیاست در توسعه ی نرمافزار کاری بس اشتباه است! اگر شما با خود فکر میکنید که مثلاً فلان قابلیت در آینده ممکن است به کار آید، می بایست دست نگه دارید. صرفاً روی قابلیتهای کلیدی نرمافزار تمرکز کنید و در صورتی که در آینده نیاز به قابلیت جدیدی داشتید، در زمان مناسب آن قابلیت را خواهید افزود.
استکاورفلو با ارائه ی بخش Documentation، کار را برای برنامه نویس ها ساده تر کرد
استکاورفلو در نظر دارد Documentation را به عنوان ریپازیتوری بزرگی که در بردارنده ی مستندات استاندارد و حرفه ای است توسعه دهد. بنابراین، Documentation می خواهد به جایگزینی برای منابع برنامه نویسی فعلی که از نظر برنامه نویسان، اغلب مشکل دار و مبهم است، تبدیل شود. مدیران استک اورفلو از این سرویس به عنوان «حلال مسایل واقعی توسعه دهندگان» نام برده اند.
#خبر | ادامه متن ...
استکاورفلو در نظر دارد Documentation را به عنوان ریپازیتوری بزرگی که در بردارنده ی مستندات استاندارد و حرفه ای است توسعه دهد. بنابراین، Documentation می خواهد به جایگزینی برای منابع برنامه نویسی فعلی که از نظر برنامه نویسان، اغلب مشکل دار و مبهم است، تبدیل شود. مدیران استک اورفلو از این سرویس به عنوان «حلال مسایل واقعی توسعه دهندگان» نام برده اند.
#خبر | ادامه متن ...