لاراول ۵/۵ و یک برنامه‌نویس خجسته

نسخه‌ی ۵/۵ فریم ورک عجیب و غریب لاراول این هفته منتشر شد.

مژده: اگر برنامه‌نویسی و صحبت درباره‌ی آن حالتان را به هم می‌زند، پیش از بستن این صفحه سری به پایین نوشته‌ام بزنید. چیز جالبی هست که از دیدنش ضرر نمی‌کنید.

طبیعتاً جرأت نکردم آن را روی سایت‌های در حال اجرا آزمایش کنم و به آزمایش روی پروژه‌ی جدیدی که مشغول پیکربندی‌اش بودم اکتفا کردم.

دو اتفاق جالب افتاد.

یک: مراقب پکیج‌های پابلیش‌شده نباشید!

قاعدتاً آپدیت فریم ورک و وابستگانش باید هر کاری می‌خواهند بکنند در پوشه‌ی vendor پروژه بکنند و کاری به کار فایل‌های ما نداشته باشند.

اما بعد از آپدیت متوجه شدم تنظیمات مربوط به رمزنگاری یکی از پکیج‌هایی که استفاده می‌کردم (این)، نیست که نیست. به کمک گیت، فرآیند را برگرداندم و دیدم که خط‌های مورد نظر بوده‌اند و حالا نیستند.

فوراً به همه‌ی دوست و آشنا پیام دادم که مراقب باشند و وقتی آخرین نفر هم هشدار مرا دید و با تعجب تشکر کرد، متوجه شدم که اساساً آن تنظیمات را پابلیش نکرده بودم!

همان قدر که آپدیت‌ها نباید چیزی را به جز پوشه‌ی vendor تغییر می‌دادند، من هم قرار نبود به آن بخش بروم و چیزی بنویسم و با حواس‌پرتی، تنظیماتم را مستقیماً در فایل منبع پکیج گذاشته بودم.

قرار گذاشتیم!
قرار گذاشتیم!


بدبختی اصلی اینجا بود که مجبور شدم برای تک‌تک گیرندگان پیام هشدار، توضیح دهم که مراقب نباشند و آن‌ها هم می‌خواستند بدانند چرا!

دو: اشتباه‌هایتان را (گاهی) اصلاح نکنید!

در تجهیزات ساخت کوئری در لاراول،‌ یا همان کلاس مدل که همه‌ی مدل‌های ما بچه‌های او هستند، متغیری منطقی وجود دارد به نام exists. به این صورت:

DB::table('filans')->find(123)->exists

قبلاً تصور می‌کردم اگر مدل مورد نظر پیدا شده باشد، مقدار این «درست» است و وگرنه «غلط».

اما اشتباه فکر می‌کردم. این متغیر، مدل‌های داخل زباله‌دان (soft-deleted)ها را هم تشخیص می‌داد. این اشتباه که دیر هم متوجهش شدم، باعث شده بود بخش‌هایی از کد مطمئن نباشند و برای اصلاحشان هم امروز و فردا می‌کردم.

به هر حال دیگر مهم نیست که قبلاً چطور بود و چه می‌شد. گذشته‌ها گذشته.

مهم این است که توسعه‌دهنده‌ی لاراول، از نسخه‌ی ۵/۵ به بعد همان طور به این متغیر نگاه می‌کند که من نگاه می‌کردم. حالا دیگر حتی اگر چیزی داخل سطل آشغال هم پیدا کرد، «موجود» شمرده می‌شود و این عالی است. دیگر لازم نیست دستی به کدهای قبلی بزنم.

متغیر منطقی exists، حالا خیلی منطقی‌تر از قبل شده است.

چیز جالب

و اما چیز جالبی که آن بالا مژده‌اش را داده بودم.

زحمت بکشید و سری به سایت sagmeisterwalsh.com بزنید و از طراحی جالب آن لذت ببرید.

طراح این سایت، دو تا از دوربین‌های داخل سالن شرکت را انتخاب کرده و فیلم آن را به صورت پخش زنده، در پس‌زمینه‌ی سایت گذاشته است. اگر حوالی عصر (به وقت ایران) سایت را باز کنید، شاهد تشریف‌فرمایی صبحگاهی کارمندان خواهید بود و در خلال روز کاری (عصر و شب ما) می‌توانید تماشایشان کنید.

نمای زنده‌ی محیط کار یک شرکت، به مثابه‌ی پس‌زمینه‌ی سایت اطلاع‌رسانی همان شرکت
نمای زنده‌ی محیط کار یک شرکت، به مثابه‌ی پس‌زمینه‌ی سایت اطلاع‌رسانی همان شرکت


نکته جالب‌تر: لینک‌هایی که داخل صفحه می‌بینید، مثلاً در قاب پنجره، واقعی هستند و می‌توانید رویشان کلیک کنید. از آنجا که با کاهش کیفیت فیلم، کیفیت آن‌ها هم کم می‌شود و با تغییر نور روز و شب، درخشش آن‌ها نیز تغییر می‌کند، حدس می‌زنم که دکمه‌ها واقعاً در محل حضور فیزیکی دارند. اگر از من می‌پرسید، این معرکه است.

نکته باز هم جالب‌تر: پس‌زمینه‌ی این سایت، به شکل اسلایدشو درست شده و اگر روی کامپیوتر بازش کنید، می‌توانید نمایی دیگر از محیط کار این بزرگواران را هم تماشا کنید. (روی گوشی‌های اندرویدی و اپلی که دم دست من بود، این امکان وجود نداشت.)

منوهایی که در تصویر می‌بینید واقعی هستند. ظاهراً حتی حضور فیزیکی در محل دارند.
منوهایی که در تصویر می‌بینید واقعی هستند. ظاهراً حتی حضور فیزیکی در محل دارند.


نکته بیشتر جالب‌تر: اسلایدشوی سوم را از دست ندهید. دوستان ما در حیاط محل کارشان میزبان حیوانی هستند که یک ظرف آب هم برایش گذاشته‌اند. می‌توانید زندگی او را هم به صورت پخش مستقیم تماشا کنید.

اسلاید سوم
اسلاید سوم

نکته نهایی:

حریم خصوصی چیز خوبی است و خوب‌تر آن است که مراقب این چیز خوب، هم در زندگی خودمان و هم در زندگی دیگران باشیم. اما به زعم این حقیر، آنچه در سایتی که معرفی کردم می‌بینیم، حریمی را نقض نکرده. محیط کار، و مانیتورهای کاری در محیط کار، حریم خصوصی هیچ کس محسوب نمی‌شوند و مادامی که کارمندان از وجود آن دوربین‌ها مطلع باشند، قطعاً مراقب هستند که دست داخل دماغشان نکنند.

هرچند بررسی اول ساعت کاری من نشان داد که خیلی هم دغدغه‌ی پنهان کردن این چیزها را ندارند و برایشان مهم نیست.