The only downer for Peter Schnautz is the non-participation of the Iranian partner Hoda Systems: “Throughout history vibrant trade relations were often the driving force for political changes – why should it not occur on this occasion?” remarks Peter Schnautz and continues: “technologically this is a great loss. Hoda Systems is one of the few suppliers in the market that offers a premiere ICR engine for Arabic characters. ”
Year: ۱۳۹۱
یادگاریهای شرکت گاز
این از آن نوشتههای خودمحورانهٔ خستهکنندهایست که احتمالاً باعث میشود دوستانی آنقدر عصبی شوند تا جهت تخلیهٔ انبار باروت درونشان، به زحمت ارسال ایمیلهای تقبیحی و تنبیهی بیفتند! لذا توصیه میکنم -با توجه به اخطار روی جنبهٔ شخصی داشتنش، اگر متحمل این دسته از فشارها میشوید- از خواندن ادامهٔ مطلب خودداری کنید! اما قبل از ارائهٔ قسمت خستهکننده اشاره کنم که تصور میکنم حافظهٔ طولانیمدت خیلی خوبی ندارم به طوری که اگر شواهد کافی وجود نداشت من احتمالاً جزء منکرین زندگی پیش از هفت سالگی میبودم! با این حال یکی از عادتهای سالهای اخیرم که جمعآوری و بایگانی تقریباً همه گونه آت و آشغال دیجیتالی از فایل متنی گرفته تا عکس و فیلم و برنامهٔ کامپیوتری تولید شده توسط خودم بوده تا حدودی به بازیابی قسمتهای حذف شدهٔ بایگانی ذهنم کمک کرده. گاهی مرور این بایگانیها باعث میشود به کشف اتفاقات محو شدهای از زندگیم نائل شوم! سیدیهایی که عموماً برچسبهای بامسمایی هم دارند:
در هر حال، دیروز، برف ناگهانی باعث شد تا تصمیم بگیرم قید سر کار رفتن را -به هوای زحمت احتمالی مسیر طولانی برگشت- بزنم و در عوض، چرخی بین این انبارهای زباله بزنم! حاصل آن چرخ زدنها یافتههاییست که حدس میزنم قابل تحملترینشان این تصویر متحرک باشد:
اما غیر از آن، عمدهٔ چرخهایم را بین سیدیهایی زدم که خروجیهای کارهایم در شرکت گاز روی آنها قرار داشت. کارهایی که از طراحی پاورپوینتهای مناسبتی گرفته تا طراحی صفحات وب اینترانت و اینترنت شرکت و نهایتاً برنامهنویسیهای پراکنده را در بر میگرفت. اینها تصاویر تکههایی از آن کارها هستند -که همچنان که اشاره کردم- به منظور استفادهٔ شخصی و زنده کردن یا خلق مجدد خاطرات در اینجا منتشرشان میکنم.
گنجوروید
این حاصل آن چند روز تعطیلی ناخواستهٔ هفتهٔ گذشته است. مرفهین بادردِ علاقمند به شعر ِ صاحب گوشیهای اندروید آزمایشش کنند، نظرشان را بگویند.
لطفاً خودتان را تکرار نکنید!
یک اصل یا قاعده یا توصیهٔ برنامهنویسی هست که علی رغم آن که عموماً جماعت برنامهنویس با آن آشنایی دارند -به نظرم- التزام به پیروی از آن موجب رستگاری همگان در همهٔ کارها خواهد شد ;).
این اصل که به طور خلاصه «DRY» خوانده میشود (و متضاد آن «WET» است! ؛ اولی مخفف Don’t Repeat Yourself و دومی مخفف Write Everything Twice) به طور ساده (به زبان برنامهنویسان) میگوید هر قسمتی از کدِ برنامه که ممکن است لازم باشد در جای دیگری مجدداً استفاده شود؛ لازم است به جای تکرار، به شکل یک کد قابل استفادهٔ مجدد (تابع، کلاس و …) درآید و هر جا لازم شد فراخوانی شود. البته این اصل تعریف پیچیدهتر و دقیقتری هم دارد که درکش مستلزم سوزاندن فسفر بیشتری است: «هر بخشی از دانش در یک سیستم باید یک نمایش یکتا، غیر مبهم و معتبر داشته باشد».
برنامهنویسان نمود کارایی این قاعده را عموماً در رفع ایراد برنامهها مشاهده میکنند: جاهایی که عدم رعایت این توصیه باعث شده بخشهایی از کد -جا به جا- به جای تبدیل به یک تابع و فراخوانی تکراری، به طور کامل کپی شده و حالا مشخص شده که آن بخش از کد ایراد دارد. اگر کار به قاعده انجام شده باشد -کسی خودش را تکرار نکرده باشد- رفع ایراد یا بهینهسازی یک قسمت از کد مشکل را حل میکند، اما وای به حال وقتی که کد؛ مکرراً کپی شده و تازه احیاناً در کپیهای مجدد در هر جا -بنا به مقتضیات- تغییرات مختصر یا مفصلی هم کرده باشد: اگر برنامهنویس خطاکار خود شما بوده باشید که تاوان عمل نکردن به این توصیه را با صرف وقتتان خواهید پرداخت، اما اگر کس دیگری قرار باشد خطای شما را تصحیح کند چه؟ لبخند میزنید؟! دلتان از شدت بدجنسی ضعف میرود؟! توصیه میکنم شما علاوه بر این توصیه، توصیهٔ مفیدتری را هم آویزهٔ گوشتان داشته باشید که ممکن است روزی جانتان را نجات دهد:
همیشه طوری کدنویسی کن که انگار کسی که قرار است کد تو را نگهداری کند یک قاتل زنجیرهای روانی است که نشانی خانهات را میداند!
بگذریم! این که خواندید مقدمهٔ صحبتم بود. اصل مطلب این که به نظرم یکی از جاهایی که پیروی از DRY شدیداً میتواند از هدررفت تکراری وقتها جلوگیری کند آنجاست که شما یک پروژهٔ بازمتن یا سایت یا وبلاگ عامالمنفعه و مانند آن روی اینترنت دارید و خود را تا حد امکان متعهد به پشتیبانی از آن با پاسخگویی سؤالات مخاطبانتان میدانید. DRY زمانی نمود و کاربرد پیدا میکند که مخاطبانتان سؤالات یا درخواستهای تکراری دارند و شما مجبورید به طور عادی یک جواب خاص را برایشان تکرار کنید. یکی از راهحلهای این مسأله که میتواند به شما کمک کند کمتر خودتان را تکرار کنید آن است که پاسخ این سؤالات را در صفحاتی روی وب نگهداری کنید و در پاسخ هر سؤال تکراری، به جای نوشتن پاسخ مفصل، مخاطب را به صفحهٔ پاسخ ارجاع دهید.
شأن نزول این مطلب آن بود که خود من مدتها است که دارم تاوان عمل نکردن به این قاعده را برای خطای متداولی روی گنجور رومیزی میپردازم:
مسأله آن است که در اغلب این موارد، زمانی که برای جلوگیری از تکرار باید صرف شود بسیار کمتر از زمانی است که برای انشا و ارسال جواب تکراری برای تک تک مخاطبان صرف میشود. خاتمه آن که، امروز وقت گذاشتم و پاسخ متداول را جایی در دسترس گذاشتم. دعای آخر مجلس آن که کاش در جیمیل میشد فیلتری تعریف کرد که در مواجهه با ایمیل حاوی کلمات تکراری (برای من استثنای برنامهنویسی System.BadImageFormatException)، به طور خودکار ایمیل از پیش تعیین شدهای را ارسال کند (که در نمونهٔ من ایمیلی حاوی لینک به این صفحه میشود).