how to be a better developer & programmer

35
how to be a better Developer & Programmer نویس بهتر باش و برنامهنده ده چگونه یک توسعه یمکت رزبن شر- مرداد95

Upload: reza-razavi

Post on 14-Jan-2017

38 views

Category:

Software


1 download

TRANSCRIPT

Page 1: How to be a better Developer & Programmer

how to be a better

Developer & Programmerیمچگونه یک توسعه دهنده و برنامه نویس بهتر باش

95مرداد -شرکت رزبن

Page 2: How to be a better Developer & Programmer

Passion

ته اید لذت اگر شما عالقه ندارید تا برای یک روز جلوی سیستم نشسته و از خطوط کدی که خودتان نوشباشدببرید این مهارت مناسب شما نمی

اگر شما به کاری عالقه نداشته باشید تمرین کردن امری طاقت فرسا می شود

ه نویس خوب هم همه میدانند که نیازی نیست به یک گیتاریست خوب گفته شود که تمرین کن این مساله برای یک برناممصداق دارد

، مهم استخواستن تمرین کلید اصلی این است که تمرین کردن ضروی نیست

یک گیتاریست خوب نمی تواند منتظر بازگشت به خانه و برداشتن گیتار و استفاده از آن شود

به همین ترتیب یک برنامه نویس خوب نمی تواند منتظر کشف چالش کد زنی بعدی شود

شور و اشتیاق

Page 3: How to be a better Developer & Programmer

Persistence

ود برنامه مانند یک گیتاریست که ساعت ها و روز ها بر روی کار خود وقت می گذارد تا یک نت ایجاد شنویس هم باید بتواند بار ها و بار ها برای حل مشکل خود تالش کند و ناامید نشود

پافشاری

Page 4: How to be a better Developer & Programmer

Improve Your English Language

زبان انگلیسی خود را تقویت کنید

Page 5: How to be a better Developer & Programmer

Work on Basics

برای هر صنعت و شغلی فهم مفاهیم نکته کلیدی موفقیت است

تا وقتی که کسی دریافت های مفاهیم قوی نداشته باشد هیچگاه یک برنامه نویس موفق نخواهد بود

فهم مفاهیم اصلی(core)به شما در طراحی و پیاده سازی بهترین راه حل در بهترین زمان ممکن کمک خواهد کرد

شت و مطالعه اگر هنوز فاصله ای بین دانش اصلی کامپیوتر و مفاهیم زبان برنامه نویسی شما وجود دارد هنوز برای بازگمفاهیم پایه ای دیر نشده است

تقویت پایه

Page 6: How to be a better Developer & Programmer

You learn more by helping others

اغلب ما زمانی به فروم ها و گرو ها مراجعه می کنیم که نیازمند کمک باشیم

یک جدا کننده واضح میان برنامه نویس خوب و غیر خوب در مشاهده این مکان ها جهت کمک به دیگران است

در یک تیم خوب همه در حل مشکالت به همدیگر کمک می کنند

شما با کمک به دیگران یاد میگیرید

Page 7: How to be a better Developer & Programmer

When you face an error

i'm NOT ALONE

Page 8: How to be a better Developer & Programmer

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.

Page 9: How to be a better Developer & Programmer

Write a thorough implementation plan (or model).(یا مدل) طرح اجرایی نوشتن

برای موارد کوچک این طرح می تواند یک فلوچارت ساده باشد

کند با در برای پروژه های بزرگتر این طراحی میتواند به شکستن کار به ماژول های کوچک کمک:نظر گرفتن موارد زیر

چه وظایفی را هر ماژول بر عهده دارد-

داده ها چگونه میان ماژول ها جابجا می شوند-

داده ها چگونه داخل هر ماژول استفاده می شوند-

Page 10: How to be a better Developer & Programmer

!نفس بکش

را متوقف گیر کردید کار!!! ( البته بستگی به کد دارد) اگر در منطق یک کد بیش از دو ساعتکنید یک چای یا قهوه بخورید و مجدد امتحان کنید

! (بعضا مشاهده شده بین چای و قهوه بعضی وقت ها کد هم زده می شود )

Page 11: How to be a better Developer & Programmer

Comment

نت گذاری اگر می بینید که کد شما نیاز مند توضیح هست کامانجام بدهید

هر تابع باید یک یا دو خط توضیح درباره آرگومان هایورودی و خروجی داشته باشد

کامنت را هنگامی که کد بروز شد ، بروز کنید!!

Page 12: How to be a better Developer & Programmer

Use consistent naming conventions for variables

یر ها را این شیوه نام گذاری به شما کمک می کند تا نوع متغدنبال کنید

ام یکی از شیوه های متداول نمایش مجارستانی است که نمتغیر با پیشوند نوع متغیر

:ادغام می گرددintRowCounter متغیرinteger

strUserName متغیرstiring

قواعد نام گذارس سازگار برای متغیر ها

Page 13: How to be a better Developer & Programmer

Organize your codeسازمان دهی کد

اده از ساختار های بصری جهت جداکردن ساختار های کد استفکنید

بین متغیر ها و مقادیر با اسپیس فاصله بیاندازید

ص کد های با قابلیت استفاده مجدد را از کد های صرفا مخصید این برنامه جدا کنید تا بعدا بتوانید از آن ها استفاده نماییعکار تست برنامه و نیز نوشتن برنامه های بعدی را تسر

می بخشد

هت باال بلکه ج! کد ها ی خود را زیبا بنویسد نه برای زیبا بودنه کد رفتن خوانایی این امر وقتی ممکن است شش ماه دیگر ب

!نیاز پیدا کنید ضروری تر می گردد

Page 14: How to be a better Developer & Programmer

Write simple, understandable but logical code

مانند همه جنبه های زندگی فرمول ساده و کوتاه بگیر(keep it simple and short ) در برنامه نویسی نیز برقرارهست

کد را منطقی و بدون پیچیدگی بنویسید

بعضی از مواقع افراد کد های پیچیده را صرفا جهت نمایش توانایی های خود می نویسند

تجربه نشاند داده است کد های ساده و منطقی همیشه به خوبی کار می کنند

یک نقل قول جالب:

چگونه می من»کد خوب بهترین مستند ها را دارد ، هنگامی که می خواهید توضیحی را اضافه کنید از خود سوال کنید “Steve McConnell« توانم کد را بهبود ببخشم که نیازی به این توضیح نباشد

https://en.wikipedia.org/wiki/Steve_McConnell

ساده ، قابل فهم اما منطقی

Page 15: How to be a better Developer & Programmer

Spend more time in analyzing the problem,

you’ll need less time to fix it

زمان بیشتری را برای فهم و تحلیل مساله و طراحی راه حل آن بگذرانید

طراحی همیشه به معنی استفاده از زبان های مدل سازی و ابزار ها نیست

دطراحی گاهی به سادگی نگاه به آسمان و تفکر درباره راه حل در ذهن می باش

فتادن لحظه اتفاق ا( جهت کد زدن ) کسانی که عادت دارند به فشار دادن کیبورد.یک مشکل معموال متفاوت از نیازمندی های ما کار رو به پایان می رسانند

نقل قول:

ما برای کد اگر شما نمی توانید ساختار یک مساله را هنگام گرفتن دوش درک کنید ، ش»Richard Pattis« کردن آن آماده نیستید

http://www.ics.uci.edu/~pattis/

آنزمان بیشتر برای تحلیل مساله ، زمان کمتر برای حل

Page 16: How to be a better Developer & Programmer

Don’t dismay yourself by looking at changing

technology world

خود را از تغییر دنیای تکنولوژی نترسانید

Page 17: How to be a better Developer & Programmer

Read documentation

اد یکی از عادت های ضروری یک برنامه نویس خوب مطالعه تعدزیادی از مستند ها می باشد

مانند سند هایAPI ها ، آموزش ها و...

یجاد مطالعه مستند ها به شما کمک می کند پایه ای خوب را جهت ابرنامه خود به بهترین نحوه ایجاد کنید

مطالعه مستند ها

Page 18: How to be a better Developer & Programmer

Practice & make Mistakes

تمرین کنید ، و در طول تمرین در کنار بهبود کد زنی اشتباه کنید!

چرا اشتباه کردن مهم است ؟ با کد زدن بیشتر خطاهای شما درerror handling ،محقق می شود... و threadingطراحی ، نخ کشی

ی دهیدشما از این اشتباهات یادمیگیرید و با تمرین بیشتر مهارت خود را ارتقا م

تمرین و اتفاق افتادن اشتباه

Page 19: How to be a better Developer & Programmer

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/

خود یادگیری از طریق وب سایت ها و کتاب ها

Page 20: How to be a better Developer & Programmer

Reflectionانعکاس

خطا برای / ن باگ هر زمانی که یک باگ را در کد خود بر طرف می کنید باید به عقب بازگشته و ببنید چگونه می توانید از ایجاد ای■اولین بار و در آینده جلو گیری کنید

Page 21: How to be a better Developer & Programmer

Learn from other programmers

سعی کنید در پروژه هایی با انواع مختلف کار کنید

هر پروژه را به عنوان یک متد یادگیری در نظر بگیرید

ا آن ها از طریق بیرون انداختن خودتان از منطقه امن و کار با دیگر برنامه نویسان و کار بر روی وظایفی که ب.آشنایی ندارید توناهایی های جدیدی را در خود ایجاد کنید

جربه کنید تا از اگر فرصت برای شما پیش آمد برنامه نویسی دو تایی را با دیگر برنامه نویسان و توسعه دهندگان تاین طریق کیفیت کد را ارتقا ببخشید و تبدیل به یک عضو بهتر برای تیم خواهید شد

یادگیری از دیگر برنامه نویسان

Page 22: How to be a better Developer & Programmer

Work on Open Source code

http://sourceforge.net/

https://github.com/

کار بر روی کد های متن باز

Page 23: How to be a better Developer & Programmer

Read Code

در حال کار بر روی کد های متن باز ، سعی کنید چگونگی عملکرد آن ها را بفهمید

به دنبال الگو های موجود در کد بگردید و توانایی های خود را توسعه ببخشید

کد زنی خود را ارتقا می بخشید ...( و ! ، فهم! شعور) از این طریق به تدریج ادراک

ی دهد تا توسعه ادراک کد زنی به شما اجازه می دهند تا هنگامی که چیزی درست نباشد متوجه شوید و به شما اجازه مخطا ها و گپ ها را کشف کنید و اجازه می دهد آن ها را برطرف نمایید

!خواندن کد

Page 24: How to be a better Developer & Programmer

Master the programming language(s) that you use or be the Jack of all trades…master of none

:در این جا دو گزینه که هر دو برای توسعه دهندگان و برنامه نویسان قابل اجرا هست وجود دارد

تمرکز بر تسلط بر روی یک زبان برنامه نویسی خاص مانند جاوا و بهترین بودن در این زبان. 1

توانایی تغییر تکنولوژی و استاندارد های برنامه نویسی که می تواند یک چند. ند زبان را توانایی باشد و چ-2.یادبگیرد و همه کاره و هیچ کاره باشد

!بهترین در زمینه خود یا همه کاره و هیچ کاره

Page 25: How to be a better Developer & Programmer

Get Involved in Social media, communities, blogs and mailing lists

اص نیست و همه دیگر مانند گذشته نیاز به ثبت نام در یک کالس خ! تکنولوژی به سادگی قابل یادگیری شده استاطالعات مورد نیاز در دسترس می باشد

محل های خوبی برا شروع هستند... عضویت در رسانه های اجتماعی، اجتماعات آنالین ، بالگ و.

استفاده ازhttp://stackoverflow.com/ فروم ها و دیگر اجتماعات بسیار مهم هستند ،.

در رسانه های اجتماعی ، اجتماعات ، بالگ ها سهیم شوید

Page 26: How to be a better Developer & Programmer

Write a Unit Test

Unit Testingیک فرآیند توسعه نرم افزار است به طوری که کوچکترین بخش قابل تست از یک برنامه ،unit نامیده.می شود

همه چیز را تست کنید!

ابتدا ورودی ها و مقادیر مورد انتظار سیستم را وارد نمایید

(ص میگرددباگ های پنهان مشخ) سپس مقادیری که ممکن هست اتفاق بیافتد ولی معمول نیست را امتحان کنید

تست را به گونه ای انجام دهید که شامل موارد زیر شود : هنر تست:

nullصفر و فراتر از مقادیر حداکثر مثبت ، رشته خالی و : افراط -

گیریدهمه چیز را در نظر ب! این را در نظر بگیرید که ممکن است کاربر نهایی عجیب باشد: مقادیر بی معنی -

...صفر در تقسیم و : مقادیر غیر صحیح -

تست

Page 27: How to be a better Developer & Programmer

Do a Code review and send your code review to others to critic

انجام یک بازبینی کد بسیار مهم می باشد.

افت هنگام بازبینی شما ادراک کد نویسی خود را بهبود می بخشید و از طریق دریبازخورد از دیگران همزمان به دیگران جهت بهبودشان کمک می کنید

ر روی آن هنگامی که شما بر روی یک کد کار می کنید به دلیل اینکه زمان زیادی را بایی کشف توان! قرار میدهید به اشتباهات خودتان پی نمیبرید و یک جفت چشم سرحال

.آن ها را دارد

یدکد را بازبینی نمایید و این بازبینی را به دیگران جهت نقد ارسال کن

Page 28: How to be a better Developer & Programmer

Explore

در کار بار نرم افزار ها ، سیستم های عامل ، اپلیکیشن ها به دنبال اکشتاف باشیم!

امه نویسی به طور مثال پیدا کردن کلید های میانبر جهت بهبود سرعت کار اگرچه به خودی خود ارتباط خاصی با برنندارد اما به باال بردن ادراک برنامه نویسی کمک می کند

اکتشاف

Page 29: How to be a better Developer & Programmer

Search

در اکثر سیستم های توسعه نرم افزار مانندvisual studio و همینطور سیستم هایهنگام بروز خطا ، کد خطا نیز نمایش MSSQL Serverمدیریت پایگاه داده مانند

ا گفته داده می شود که با یک جستجوی ساده در پایگاه معتبری که تعدادی از آن ه.شد مشکل بر طرف می گردد

د راه حل قبل از جستجو برای حل مشکل ، مساله را یکبار برای خود شرح بدهید شای.انتخابی شما داری نقصی باشد

حل بهترین راه حل ساده ترین راه حل نیست ، پیچیده ترین راه حل بهترین راه!نیست

چگونه جستجو کنیم

Page 30: How to be a better Developer & Programmer

Don’t compare yourself with others

ددمقایسه خود با دیگران فقط سبب ایجاد احساس منفی می گر

هر کس توانایی ها و ضعف های مخصوص به خود را دارد

ر کنیممهمترین مساله این است که ما خود را بشناسیم و روی خود کا

بارها دیده شده است که افرادfundoo-programmers یا برنامهنویسان اساسا قوی اشتباهات احقمانه انجام داده اند

یست کنید خود را تحلیل کنید ، نواحی که می توانید بهبود ببخشید ل.و بر روی ان ها کار کنید

خود را با دیگران مقایسه نکنیم

Page 31: How to be a better Developer & Programmer

Practice, practice, practice

برنامه نویسی یک رشته راکد نیست !

دهمیشه چیز های جدید برای یادگیری و شاید مهمتر از آن چیزهایی برای یادگیری مجدد وجود داشته باشن

Page 32: How to be a better Developer & Programmer

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.

Page 33: How to be a better Developer & Programmer

Programming is a real fun, enjoy it

Page 34: How to be a better Developer & Programmer

منابع

https://blog.idrsolutions.com/2014/07/top-11-ways-better-developer-programmer/

http://searchsoftwarequality.techtarget.com/definition/unit-testing

http://gettingthingsdone.com/

https://dzone.com/articles/10-effective-ways-become-good

https://en.wikipedia.org/wiki/Hungarian_notation

Page 35: How to be a better Developer & Programmer

اتشکر از توجه شم