۹۷ چیزی که هر برنامه نویس باید بداند

۱. کتابیه که اسمش کاملن واضح می‌گه محتوا چیه:‌ نود و هفت چیز که یه برنامه نویس باید بدونه. یا بهتره بگیم نود و هفت نکته که دونستنش به یه برنامه نویس کمک می‌کنه که برنامه نویس بهتری بشه. کارهای خورد و ریزی مثل کامنت گذاری و اهمیتش و شیوه‌ی درست انجام دادنش گرفته تا اهمیت استفاده از نرم افزار های ورژن کنترل(مثلن گیت) برای توسعه نرم افزار. یا مثلن این که کد زدن و مهارتهای مهندسی تنها عاملهای موفقیت نیستن و چیزای دیگه ای هم هستن که یه برنامه نویس باید حواسش بهشون باشه. درکل کتابیه که به شدت به هر کسی که برنامه نویسه یا می ‌خواد برنامه نویس باشه توصیه می‌شه. این رو هم بگم که هیچ کدوم از این نود و هفت چیز بیشتر از دو صفحه نیستن و خب زمان زیادی رو از آدم نمی گیرن. پیشنهاد شخصی من هم البته اینه که وقتی برین سراغ این کتاب که حداقل روی یه زبان برنامه نویسی مسلط باشین و یکی دو تا پروژه (چه بهتر که تجاری/واقعی/کاربردی باشن ولی پروژههای تمرینی هم قبوله) انجام داده باشین و تا حدودی با پروسه تولید نرم افزار آشنا باشین. این رو هم بگم که کتاب کاملن رایگان هست و هم روی گیتهاب و هم توی خیلی از سایتهای دانلود کتاب می‌تونید با خیال راحت پیداش کنید و دانلود کنید.

۹۷ چیزی که هر برنامه نویس باید بداند

۲. این جا تعدادی از تیتر ها رو می ذارم که شاید جذاب تر کنه خوندن کتاب رو:

  •  رعایت اصول بنیادی برنامه‌نویسی
  • از خود بپرسید کاربر – در این موقعیت- چکار خواهد کرد!‌ (شما کاربر نیستید)
  • زیبایی در سادگی ست
  • قانون پیشاهنگی
  • ابزار‌های خود را با دقت انتخاب کنید
  • مرور کد
  • کامنتی درباره کامنت ها
  • تنها چیزی را کامنت کنید که کد نمی تواند بیان کند
  • یادگیری مستمر
  • از خراب کردن چیزها نترسید
  • با دیتای تست نرم رفتار نکنید
  • ارور ها را نادیده نگیرید
  • به یاد گرفتن یک زبان بسنده نکنید،‌ فرهنگ آن را هم درک کنید
  • خودتان را تکرار نکنید
  • و …

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

به زبان آدمیزاد URL بنویسیم

۱. اتفاقی که افتاده اینه: یکی از دوستای من وقتی می خواسته حساب تپسی خودش رو شارژ کنه یه صفر اضافه می ذاره و به‌جای بیست هزار تومن، دویست هزار تومن شارژ می‌کنه حسابش رو. توی پروسه‌ی استرداد پولش، به یه لینک می‌رسه که اینجوریه:

https://tap30.ir/php/__123_send_email.php

۲. توی این یه دونه ‌URL چندتا نکته‌ی خیلی باحال دیده می‌شه. اولین چیزی که توی ذوق می‌زنه، اون ۱۲۳ هست که توی اسم فایل پی اچ پی هست. دلیلش رو می‌شه تا حدودی حدس زد. یا یه فایل به اسم send_email از قبل وجود داشته و آقا/خانم برنامه‌نویس بی‌حوصله، اینجوری از زیر بار اسم انتخاب کردن در رفته. ولی شایدم می‌خواسته مفهوم خاصی رو با این اسم برسونه که بازهم متاسفانه چندان واضح نیست و موفق نبوده. در مورد اون دو تا آندر-اسکور اول اسم فایل هم نمی دونم بین پی‌اچ‌پی کار‌ها مفهومی داره یا این‌که این‌هم از خلاقیت(!)‌های این برنامه‌نویسه.

۳. توی URL بالا یه چیز جالب دیگه هم دیده می‌شه: اون فایل پی‌اچ‌پی که بحثش شد، توی فولدری قرار گرفته به اسم PHP. این هم اصلن چیز جالبی نیست. از هر منظری به قضیه نگاه کنیم این کار غلط حساب می‌شه. اولین نکته اینه که مخاطب سایت ما که در اکثر موارد برنامه نویس نیست و یه آدم معمولیه، چندان سودی نمی بره از دیدن این اسم فولدر. حتی برای برنامه‌نویس‌ها هم جالب نیست دیدن همچین چیزی. کار درست و خوشبختانه رایج اینه که اسم این فولدرها، تابع کاری که انجام می‌دن باشه. یعنی جوری که با دیدن آدرس یه صفحه که شامل اسم فولدر و اسم فایل می‌شه، کاربر بتونه درمورد حاصلی که قراره ببینه حدس بزنه. از این هم بگذریم از تاثیر آدرس صفحه‌ها توی سئو سایت نباید ساده رد شد. اینجا این رو می‌فهمیم که آقا/خانم برنامه‌نویس درمورد سئو هم اطلاعات چندان درست و دقیقی نداره. و تلخ‌تر اینکه این مسائل رو داریم توی سایتی شرکتی می‌بینیم که جزو شرکتای به‌روز بازار ایران حساب ‌می‌شه.

۴. قضیه به ‌َیه ‌URL بد ختم نمی‌شه. با باز کردنش می‌رسیم به این صفحه:

tap30

این ‌مشکل رو توی تقریبن همه‌ی مرورگر‌ها می‌شه دید. جالب اینه که همچین مشکلی حتی توی بی‌کیفیت‌ترین سایت‌ها هم به ندرت پیش می‌اد.

  • چیزی که اینجا -توی URL- ازش به عنوان فولدر/پوشه حرف زده شد، درواقع می‌تونه حتی فولدر هم نباشه. خیلی از فریمورک ها – از جمله‌ جنگو- این امکان رو می‌دن که برنامه‌نویس بسته به نیازش و چیزی که توی ذهن داره، آدرس‌ها رو تعریف کنه. درمورد URL Pattern و URL Mapping جستجو کنید.