# فهرست چیزها!

* [مقدمه]()

1. [بدهی فنی](thing_01)
2. [به کار گیری اصولی توابع برنامه نویسی](thing_02)
3. [نیاز کاربر چیست؟](thing_03)
4. [استاندارهای کدنویسی](thing_04)
5. [زیبایی در سادگی است](thing_05)
6. [قبل از انجام ریفکتورینگ دقت کنید](thing_06)
7. [در دستکاری کدها و منابع مشترک بین پروژه ها محتاط باشید.(نظافت را رعایت کنید!)](thing_07)
8. [پیش از آن که دیگران را متهم کنید، کد خود را چک کنید!](thing_08)
9. [انتخاب ابزار مناسب](thing_09)
10. [برنامه های خود را به زبان مشتریان بنویسید!](thing_10)
11. [طرح‌های خود را بی‌نقص کنید](thing_11)
12. [به چیدمان کدها توجه کنید!](thing_12)
13. [نقد و بررسی کدها](thing_13)
14. [کامنت‌گذاری را فراموش نکنید](thing_14)
15. [تنها توضیحاتی را بنویسید که کدهایتان قادر به شرح آنها نباشند!](thing_15)
16. [از کدهای قبلی خود در شرایط مناسب مجدداً استفاده کنید](thing_16)
17. [همواره در حال یادگیری موضوعات جدید باشید](thing_17)
18. [ویژگی‌های یک API با طراحی مناسب](thing_18)
19. [از ابتدای کار توسعهٔ اپلیکیشن خود روی فرآیند نصب و دیپلوی آن به طور پیوسته کار کنید](thing_19)
20. [مدیریت اکسپشن‌ها](thing_20)
21. [تمرین آگاهانه لازمهٔ حرفه‌ای شدن است!](thing_21)
22. [پشت هر خط از کد شما می‌بایست یک منطق وجود داشته باشد!](thing_22)
23. [مفهوم DSL چیست و چرا آشنایی با آن در حوزهٔ برنامه‌نویسی اهمیت دارد؟](thing_23)
24. [از ساختارشکنی نترسید!](thing_24)
25. [برای تست نرم‌افزار از دیتای واقعی استفاده کنید](thing_25)
26. [حتی یک ارور را هم نادیده نگیرید!](thing_26)
27. [فرهنگ استفاده از یک زبان برنامه‌نویسی را در کنار سینتکس آن بیاموزید](thing_27)
28. [اکسپش‌ها را به راحت‌ترین شکل ممکن هَندل کنید](thing_28)
29. [فرایند توسعه یک نرم‌افزار خوب اصلاً شانسی نیست](thing_29)
30. [آشنایی با قانون DRY](thing_30)
31. [شنایی با مراحل توسعهٔ نرم‌افزار](thing_31)
32. [به‌کارگیری درست از اصول برنامه‌نویسی شیٔ‌گرا](thing_32)
33. [اعداد اعشاری با خطای محاسباتی در کامپیوتر ذخیره می‌شوند](thing_33)
34. [جاه طلبی خود را با شرکت در پروژه های متن باز برآروده کنید.](thing_34)
35. [قانون طلایی طراحی API](thing_35)
36. [اسطوره ها!](thing_36)
37. [کار سخت نتیجه همیشه بهترین نتیجه را نمی دهد](thing_37)
38. [چگونه به یک باگ نگاه کنیم؟](thing_38)
39. [کد را با حذف آن بهبود دهید!](thing_39)
40. [من را نصب کن](thing_40)
41. [تعداد بالای فرآیندهای داخلی برنامه قطعاً روی کارایی برنامه تاثیر خواهند داشت](thing_41)
42. [نظافت را رعایت کنید](thing_42)
43. [نحوه استفاده از ابزارهای خط فرمان را بیاموزید](thing_43)
44. [بیش از دو زبان برنامه نویسی را به خوبی بلد باشید](thing_44)
45. [به IDE خود مسلط باشید](thing_45)
46. [محدودیت های خود را بشناسید](thing_46)
47. [با آگاهی از قدم بعدی قدم فعلی را بردارید](thing_47)
48. [داده های بزرگ به هم پیوسته متعلق به یک پایگاه داده](thing_48)
49. [زبان های خارجی را یاد بگیرید، حداقل انگلیسی](thing_49)
50. [تخمین زدن را بیاموزید](thing_50)
51. [گاهی مسائل و مشکلات بزرگ را به قسمت های کوچکتر بشکنید و با تکه های کوچک سعی و خطا کنید!](thing_51)
52. [طوری کد بزنید که پروژه ی شما خودش معرف خودش باشد](thing_52)
53. [چیزهای اضافی را لود نکنید!](thing_53)
54. [چه‌موقع و چگونه از راه‌کارهای موقتی در کدنویسی استفاده کنیم؟](thing_54)
55. [سعی کنید Interface ها را طوری بنویسید که برای استفاده ی صحیح آسان باشند و برای استفاده ی ناصحیح سخت!](thing_55)
56. [موارد نامرئی را بیشتر قابل مشاهده(شفاف سازی) کنید](thing_56)
57. [ضرورت آشنایی با مفاهیم کانکارنسی و پاراللیزم](thing_57)
58. [یافتن راه‌کارهای ساده برای مشکلات سخت](thing_58)
59. [دولوپری که نداند Polymorphism چیست، دولوپر نیست!](thing_59)
60. [اخبار عجیب و غریب : تستر دوست شماست!🤣](thing_60)
61. [همواره یک نسخه از نرم‌افزار برای ریلیس داشته باشید](thing_61)
62. [فقط کد حقیقت را می گوید](thing_62)
63. [فقط کد نزنید بلکه Build Process را نیز مدنظر قرار دهید](thing_63)
64. [اهمیت برنامه‌نویسی دونفره](thing_64)
65. [آشنایی با تفاوت Static Typing و Dynamic Typing در برنامه‌نویسی](thing_65)
66. [تا حد ممکن از نمایش ارورها برای کاربر اجتناب کنید!ا](thing_66)
67. [برنامه نویس حرفه ای](thing_67)
68. [همه چیز را روی سییستم های کنترل نسخه قرار بدهید](thing_68)
69. [ماوس را زمین بگذارید و از صفحه کلید فاصله بگیرید!](thing_69)
70. [کد را بخوانید](thing_70)
71. [علوم انسانی بخوانید!](thing_71)
72. [تا حد ممکن دست به اختراع مجدد چرخ نزنید!](thing_72)
73. [در مقابل وسوسه الگوی Singleton مقاومت کنید](thing_73)
74. [وابستگی‌های زیاد دشمن ریفکتورینگ هستند!](thing_74)
75. [سادگی از اختصار می آید(کم گوی و گزیده گوی!)](thing_75)
76. [آشنایی با قانون Single Responsibility](thing_76)
77. [همه‌ چیز با یک آری شروع می‌شود!](thing_77)
78. [تا حد ممکن همه‌ چیز را خودکار کنید](thing_78)
79. [از مزایای ابزارهای تحلیل کد بهره ببرید](thing_79)
80. [در تست نرم‌افزار فقط رفتار مورد انتظار را بسنجید](thing_80)
81. [تست‌ها علاوه بر صحیح بودن، می‌بایست دقیق هم باشند](thing_81)
82. [تست نرم‌افزار و سورس‌کد را آخر شب‌ها و آخر هفته‌ها انجام دهید!](thing_82)
83. [مقایسه‌ای مابین مهندسین نرم‌افزار و دیگر مهندسان](thing_83)
84. [از نوشتن کدهای اضافی پرهیز کنید](thing_84)
85. [اهمیت برنامه‌نویسی دونفره در کدنویسی را هرگز نادیده نگیرید](thing_85)
86. [منفی در مفنی می‌شود مثبت!](thing_86)
87. [کدنویسی تمیز و اصولی یک باید است](thing_87)
88. [ابزارهای یونیکسی دوست دولوپرها هستند!](thing_88)
89. [استفادهٔ درست از الگوریتم‌ها و دیتا استراکچرها](thing_89)
90. [با لاگ‌گیری Verbose دچار دردسر خواهید شد!](thing_90)
91. [درک تفاوت مفاهیم DRY و WET در کدنویسی بهینه](thing_91)
92. [زمانی که برنامه نویسان و تسترها با هم همکاری کنند!](thing_92)
93. [طوری کد بنویسید که انگار باید تا آخر عمر برای آن پشتیبانی بدهید](thing_93)
94. [تا حد ممکن فانکشن‌های کوچک بنویسید](thing_94)
95. [برای دولوپرها تست بنویسید نه برای ماشین‌ها!](thing_95)
96. [مراقب سورس‌ کد باشید!](thing_96)
97. [منظور مشتریان شما چیزی نیست که می گویند!](thing_97)
