Contenu connexe Similaire à How to be a better Developer & Programmer (20) How to be a better Developer & Programmer1. how to be a better
Developer & Programmer
باش بهتر نویس برنامه و دهنده توسعه یک چگونهیم
رزبن شرکت-مرداد95
2. Passion
نوش خودتان که کدی خطوط از و نشسته سیستم جلوی روز یک برای تا ندارید عالقه شما اگرلذت اید ته
نمی شما مناسب مهارت این ببریدباشد
شود می فرسا طاقت امری کردن تمرین باشید نداشته عالقه کاری به شما اگر
برنام یک برای مساله این کن تمرین که شود گفته خوب گیتاریست یک به نیست نیازی که میدانند همههم خوب نویس ه
دارد مصداق
، نیست ضروی کردن تمرین که است این اصلی کلیدتمرین خواستناست مهم
شود آن از استفاده و گیتار برداشتن و خانه به بازگشت منتظر تواند نمی خوب گیتاریست یک
شود بعدی زنی کد چالش کشف منتظر تواند نمی خوب نویس برنامه یک ترتیب همین به
اشتیاق و شور
3. Persistence
ش ایجاد نت یک تا گذارد می وقت خود کار روی بر ها روز و ها ساعت که گیتاریست یک مانندبرنامه ود
نشود ناامید و کند تالش خود مشکل حل برای ها بار و ها بار بتواند باید هم نویس
پافشاری
5. Work on Basics
است موفقیت کلیدی نکته مفاهیم فهم شغلی و صنعت هر برای
بود نخواهد موفق نویس برنامه یک هیچگاه باشد نداشته قوی مفاهیم های دریافت کسی که وقتی تا
اصلی مفاهیم فهم(core)کرد خواهد کمک ممکن زمان بهترین در حل راه بهترین سازی پیاده و طراحی در شما به
بازگ برای هنوز دارد وجود شما نویسی برنامه زبان مفاهیم و کامپیوتر اصلی دانش بین ای فاصله هنوز اگرمطالعه و شت
است نشده دیر ای پایه مفاهیم
پایه تقویت
6. You learn more by helping others
باشیم کمک نیازمند که کنیم می مراجعه ها گرو و ها فروم به زمانی ما اغلب
است دیگران به کمک جهت ها مکان این مشاهده در خوب غیر و خوب نویس برنامه میان واضح کننده جدا یک
کنند می کمک همدیگر به مشکالت حل در همه خوب تیم یک در
میگیرید یاد دیگران به کمک با شما
8. When you see an application(web application or windows),
tell yourself. it's technically possible for you to build a similar one.
try to model it in your mind.
9. Write a thorough implementation plan (or model).
نوشتناجرایی طرح(مدل یا)
باشد ساده فلوچارت یک تواند می طرح این کوچک موارد برای
کمک کوچک های ماژول به کار شکستن به میتواند طراحی این بزرگتر های پروژه برایدر با کند
زیر موارد گرفتن نظر:
-دارد عهده بر ماژول هر را وظایفی چه
-شوند می جابجا ها ماژول میان چگونه ها داده
-شوند می استفاده ماژول هر داخل چگونه ها داده
10. بکش نفس!
ساعت دو از بیش کد یک منطق در اگر(دارد کد به بستگی البته) !!!کار کردید گیرمتوقف را
کنید امتحان مجدد و بخورید قهوه یا چای یک کنید
(شود می زده هم کد ها وقت بعضی قهوه و چای بین شده مشاهده بعضا) !
11. Comment
کام هست توضیح مند نیاز شما کد که بینید می اگرگذاری نت
بدهید انجام
های آرگومان درباره توضیح خط دو یا یک باید تابع هر
باشد داشته خروجی و ورودی
کنید بروز ، شد بروز کد که هنگامی را کامنت!!
12. Use consistent naming conventions for
variables
متغ نوع تا کند می کمک شما به گذاری نام شیوه اینرا ها یر
کنید دنبال
ن که است مجارستانی نمایش متداول های شیوه از یکیام
متغیر نوع پیشوند با متغیر
گردد می ادغام:
intRowCounterمتغیرinteger
strUserNameمتغیرstiring
ها متغیر برای سازگار گذارس نام قواعد
13. کد دهی سازمانOrganize your code
استف کد های ساختار جداکردن جهت بصری های ساختار ازاده
کنید
بیاندازید فاصله اسپیس با مقادیر و ها متغیر بین
مخص صرفا های کد از را مجدد استفاده قابلیت با های کدص
نمای استفاده ها آن از بتوانید بعدا تا کنید جدا برنامهاین ید
تسر را بعدی های برنامه نوشتن نیز و برنامه تست کاریع
بخشد می
بودن زیبا برای نه بنویسد زیبا را خود ی ها کد!ج بلکهباال هت
ب دیگر ماه شش است ممکن وقتی امر این خوانایی رفتنکد ه
گردد می تر ضروری کنید پیدا نیاز!
14. Write simple, understandable but logical code
بگیر کوتاه و ساده فرمول زندگی های جنبه همه مانند(keep it simple and short)برقرار نیز نویسی برنامه در
هست
بنویسید پیچیدگی بدون و منطقی را کد
نویسند می خود های توانایی نمایش جهت صرفا را پیچیده های کد افراد مواقع از بعضی
کنند می کار خوبی به همیشه منطقی و ساده های کد است داده نشاند تجربه
جالب قول نقل یک:
“کنید سوال خود از کنید اضافه را توضیحی خواهید می که هنگامی ، دارد را ها مستند بهترین خوب کد«منمی چگونه
نباشد توضیح این به نیازی که ببخشم بهبود را کد توانم»Steve McConnell
https://en.wikipedia.org/wiki/Steve_McConnell
منطقی اما فهم قابل ، ساده
15. Spend more time in analyzing the problem,
you’ll need less time to fix it
بگذرانید آن حل راه طراحی و مساله تحلیل و فهم برای را بیشتری زمان
نیست ها ابزار و سازی مدل های زبان از استفاده معنی به همیشه طراحی
باش می ذهن در حل راه درباره تفکر و آسمان به نگاه سادگی به گاهی طراحید
کیبورد دادن فشار به دارند عادت که کسانی(زدن کد جهت)ا اتفاق لحظهفتادن
رسانند می پایان به رو کار ما های نیازمندی از متفاوت معموال مشکل یک.
قول نقل:
«ش ، کنید درک دوش گرفتن هنگام را مساله یک ساختار توانید نمی شما اگرکد برای ما
نیستید آماده آن کردن»Richard Pattis
http://www.ics.uci.edu/~pattis/
حل برای کمتر زمان ، مساله تحلیل برای بیشتر زمانآن
16. Don’t dismay yourself by looking at changing
technology world
نترسانید تکنولوژی دنیای تغییر از را خود
17. Read documentation
تعد مطالعه خوب نویس برنامه یک ضروری های عادت از یکیاد
باشد می ها مستند از زیادی
های سند مانندAPIو ها آموزش ، ها...
ا جهت را خوب ای پایه کند می کمک شما به ها مستند مطالعهیجاد
کنید ایجاد نحوه بهترین به خود برنامه
ها مستند مطالعه
18. Practice & make Mistakes
کنید اشتباه زنی کد بهبود کنار در تمرین طول در و ، کنید تمرین!
در شما خطاهای بیشتر زدن کد با ؟ است مهم کردن اشتباه چراerror handling،
کشی نخ ، طراحیthreadingو...شود می محقق
م ارتقا را خود مهارت بیشتر تمرین با و یادمیگیرید اشتباهات این از شمادهید ی
اشتباه افتادن اتفاق و تمرین
19. Self learning from website and books
https://developers.google.com/نیست ما دسترس در معمول های روش طریق از البته!
https://www.codecademy.com/
https://code.org/learn
http://www.w3schools.com/
http://www.html5rocks.com/en/(اول مورد مانند) !
http://www.codeproject.com
https://groups.google.com/forum/#!overview
http://programmersheaven.com/
http://stackexchange.com/
ها کتاب و ها سایت وب طریق از یادگیری خود
20. Reflection
انعکاس
■ای ایجاد از توانید می چگونه ببنید و بازگشته عقب به باید کنید می طرف بر خود کد در را باگ یک که زمانی هرباگ ن/برای خطا
کنید گیری جلو آینده در و بار اولین
21. Learn from other programmers
کنید کار مختلف انواع با هایی پروژه در کنید سعی
بگیرید نظر در یادگیری متد یک عنوان به را پروژه هر
ب که وظایفی روی بر کار و نویسان برنامه دیگر با کار و امن منطقه از خودتان انداختن بیرون طریق ازها آن ا
کنید ایجاد خود در را جدیدی های توناهایی ندارید آشنایی.
ت دهندگان توسعه و نویسان برنامه دیگر با را تایی دو نویسی برنامه آمد پیش شما برای فرصت اگراز تا کنید جربه
شد خواهید تیم برای بهتر عضو یک به تبدیل و ببخشید ارتقا را کد کیفیت طریق این
نویسان برنامه دیگر از یادگیری
22. Work on Open Source code
http://sourceforge.net/
https://github.com/
باز متن های کد روی بر کار
23. Read Code
بفهمید را ها آن عملکرد چگونگی کنید سعی ، باز متن های کد روی بر کار حال در
ببخشید توسعه را خود های توانایی و بگردید کد در موجود های الگو دنبال به
ادراک تدریج به طریق این از(شعور!فهم ،!و)...بخشید می ارتقا را خود زنی کد
م اجازه شما به و شوید متوجه نباشد درست چیزی که هنگامی تا دهند می اجازه شما به زنی کد ادراک توسعهتا دهد ی
نمایید برطرف را ها آن دهد می اجازه و کنید کشف را ها گپ و ها خطا
کد خواندن!
24. Master the programming language(s) that you use or be the Jack
of all trades…master of none
دارد وجود هست اجرا قابل نویسان برنامه و دهندگان توسعه برای دو هر که گزینه دو جا این در:
.زبان این در بودن بهترین و جاوا مانند خاص نویسی برنامه زبان یک روی بر تسلط بر تمرکز 1
.چند یک تواند می که نویسی برنامه های استاندارد و تکنولوژی تغییر توانایی 2-چ و باشد تواناییرا زبان ند
باشد کاره هیچ و کاره همه و یادبگیرد.
کاره هیچ و کاره همه یا خود زمینه در بهترین!
25. Get Involved in Social media, communities, blogs and mailing
lists
است شده یادگیری قابل سادگی به تکنولوژی!خ کالس یک در نام ثبت به نیاز گذشته مانند دیگرهمه و نیست اص
باشد می دسترس در نیاز مورد اطالعات
و بالگ ، آنالین اجتماعات ،اجتماعی های رسانه در عضویت...هستند شروع برا خوبی های محل.
از استفادهhttp://stackoverflow.com/هستند مهم بسیار اجتماعات دیگر و ها فروم ،.
شوید سهیم ها بالگ ، اجتماعات ، اجتماعی های رسانه در
26. Write a Unit Test
Unit Testingبرنامه یک از تست قابل بخش کوچکترین که طوری به است افزار نرم توسعه فرآیند یک،unitنامیده
شود می.
کنید تست را چیز همه!
نمایید وارد را سیستم انتظار مورد مقادیر و ها ورودی ابتدا
کنید امتحان را نیست معمول ولی بیافتد اتفاق هست ممکن که مقادیری سپس(مشخ پنهان های باگمیگردد ص)
تست هنر:شود زیر موارد شامل که دهید انجام ای گونه به را تست:
-افراط:و خالی رشته ، مثبت حداکثر مقادیر از فراتر و صفرnull
-معنی بی مقادیر:باشد عجیب نهایی کاربر است ممکن که بگیرید نظر در را این!ب نظر در را چیز همهگیرید
-صحیح غیر مقادیر:و تقسیم در صفر...
تست
27. Do a Code review and send your code review to others to critic
باشد می مهم بسیار کد بازبینی یک انجام.
دری طریق از و بخشید می بهبود را خود نویسی کد ادراک شما بازبینی هنگامافت
کنید می کمک بهبودشان جهت دیگران به همزمان دیگران از بازخورد
ب را زیادی زمان اینکه دلیل به کنید می کار کد یک روی بر شما که هنگامیآن روی ر
سرحال چشم جفت یک و نمیبرید پی خودتان اشتباهات به میدهید قرار!توانکشف ایی
دارد را ها آن.
کن ارسال نقد جهت دیگران به را بازبینی این و نمایید بازبینی را کدید
28. Explore
باشیم اکشتاف دنبال به ها اپلیکیشن ، عامل های سیستم ، ها افزار نرم بار کار در!
برن با خاصی ارتباط خود خودی به اگرچه کار سرعت بهبود جهت میانبر های کلید کردن پیدا مثال طور بهنویسی امه
کند می کمک نویسی برنامه ادراک بردن باال به اما ندارد
اکتشاف
29. Search
مانند افزار نرم توسعه های سیستم اکثر درvisual studioهای سیستم همینطور و
مانند داده پایگاه مدیریتMSSQL Serverنمایش نیز خطا کد ، خطا بروز هنگام
ه آن از تعدادی که معتبری پایگاه در ساده جستجوی یک با که شود می دادهگفته ا
گردد می طرف بر مشکل شد.
شای بدهید شرح خود برای یکبار را مساله ، مشکل حل برای جستجو از قبلحل راه د
باشد نقصی داری شما انتخابی.
راه بهترین حل راه ترین پیچیده ، نیست حل راه ترین ساده حل راه بهترینحل
نیست!
کنیم جستجو چگونه
30. Don’t compare yourself with others
گر می منفی احساس ایجاد سبب فقط دیگران با خود مقایسهدد
دارد را خود به مخصوص های ضعف و ها توانایی کس هر
کا خود روی و بشناسیم را خود ما که است این مساله مهمترینکنیم ر
افراد که است شده دیده بارهاfundoo-programmersبرنامه یا
اند داده انجام احقمانه اشتباهات قوی اساسا نویسان
ل ببخشید بهبود توانید می که نواحی ، کنید تحلیل را خودکنید یست
کنید کار ها ان روی بر و.
نکنیم مقایسه دیگران با را خود
31. Practice, practice, practice
نیست راکد رشته یک نویسی برنامه!
باشن داشته وجود مجدد یادگیری برای چیزهایی آن از مهمتر شاید و یادگیری برای جدید های چیز همیشهد
32. Any fool can write code that a computer can
understand. Good programmers write code
that humans can understand. ~Martin Fowler
Martin Fowler
Publications
1996. Analysis Patterns: Reusable Object Models. Addison-Wesley. ISBN 0-201-89542-0.
1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley. ISBN 978-0-201-32563-8.
1999. Refactoring: Improving the Design of Existing Code, With Kent Beck, John Brant, William Opdyke, and Don Roberts (June
1999). Addison-Wesley. ISBN 0-201-48567-2.
2000. Planning Extreme Programming. With Kent Beck. Addison-Wesley. ISBN 0-201-71091-9.
2002. Patterns of Enterprise Application Architecture. With David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy
Stafford. Addison-Wesley. ISBN 0-321-12742-0.
2010. Domain-Specific Languages. With Rebecca Parsons. Addison-Wesley. ISBN 978-0-321-71294-3.
2012. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. With Pramod Sadalage. Addison-
Wesley. ISBN 978-0-321-82662-6.
2013. Refactoring: Ruby Edition. With Kent Beck, Shane Harvie, and Jay Fields. Addison-Wesley. ISBN 978-0-321-98413-5.