Philocode – Telegram
- I smell a rat!
- Yeah! It should be too problematic and weird...
- No, I mean it! I can smell a dead rat that is died under your bed!
- What? Wait! God! No! Here's a dead rat! What should I do with this?
- Why don't you dance with HER?
- Because I know you want to make a steak out of HER!
- I give up! You're so mean!
#english
😁3
راجع به پروژه‌ای که قرار بود معماری مایکروسرویس داشته باشه صحبت کرده بودیم و بعضی‌هاتون شوق نشون دادید؛ یه سیستم شبیه Google Calendar که بتونه جلسه‌ها و کارهای مهممون رو بهمون یادآوری کنه.

ریپازیتوری رو اینجا ساختم:
https://github.com/WebPajooh/calendar-microservice

کار خودم رو هم با سرویسی که مربوط به جمع‌آوری روزهای تعطیله شروع می‌کنم؛ از Typenoscript برای این سرویس استفاده می‌کنیم و فعلاً روزهای تعطیل ایران رو تشخیص می‌دیم. راه ارتباط سرویس‌های دیگه با این سرویس، REST API خواهد بود.

اگه کسی فرانت رو خیلی خوب بلده و می‌خواد مشارکت کنه، خوشحال می‌شم قسمت فرانت رو بهش بسپارم.
امیدوارم چیزهای خوبی یاد بگیریم و تجربه‌های به درد بخوری کسب کنیم. 👍
🔥32
توضیح مفید و مختصر cohesion
🤔2
Philocode
توضیح مفید و مختصر cohesion
Cohesion vs Coupling: Cohesion applies to the relationship between things inside a boundary (a microservice in our context), whereas coupling describes the relationship between things across a boundary.
#BuildingMicroservices
🤩2
داشتم صحبت می‌کردم و دیدم سرعت خیلی خرابه، گفتم ای بابا اهل خونه دارن با نت چیکار می‌کنن! وای‌فای رو خاموش کردم...
بعد یادم افتاد که عجبا خودم هم به وای‌فای وصل بودم! 🤣

نتیجۀ اخلاقی: کسی که اینترنت رو قطع کنه، خودش قبل از همه ضرر می‌کنه.
😁6👎1
اگه می‌دونید فایل robots.txt چیه، این پاراگراف رو بی‌خیال بشید. اگه نمی‌دونید، به طور مختصر این فایل به عنوان یک راهنما برای خزندۀ موتورهای جستجو عمل می‌کنه تا از اینکه چی رو باید ایندکس کنند، مطلع باشند.

حالا برعکس اون، بعضی از دولوپرها (به احتمال قوی با اجازۀ شرکت‌هاشون 😁) کار بامزه‌ای انجام دادند؛ یک فایل humans.txt درست کردند تا خودشون رو معرفی کنند! البته گاهی خبری از اسم دولوپرها نیست، ولی میدون حسابی برای شوخی باز شده!

چندتا نمونه رو ببینیم:
https://www.php.net/humans.txt
https://app.slack.com/humans.txt
https://medium.com/humans.txt
🔥3😱1
به خاطر یه بی‌دقتی منطقی، یه فیچر کامل از کار افتاد!
داستان این بود که قبلاً به طور روزانه محصولات آپدیت می‌شد و هر دقیقه جزئیات ده محصول که بیش از یک ساعت از آپدیت‌نشدنشون گذشته بود آپدیت می‌شدند. بعداً لازم شد که به جای آپدیت روزانۀ لیست، هر ساعت این کار رو انجام بدیم و چنین شد که یه باگ خوشگل خزان‌ساز به وجود اومد. این کوئری هیچوقت نتیجه‌ای برنمی‌گردوند، چون هر ساعت لیست آپدیت می‌شد و عملاً موردی نبود که مربوط به زمانی قدیمی‌تر از یک ساعت پیش باشه! 😵‍💫

درس اخلاقی امروز: وقتی با اعداد و خصوصاً تاریخ سر و کار دارید، منطقی باشید!
😁4
Philocode
به خاطر یه بی‌دقتی منطقی، یه فیچر کامل از کار افتاد! داستان این بود که قبلاً به طور روزانه محصولات آپدیت می‌شد و هر دقیقه جزئیات ده محصول که بیش از یک ساعت از آپدیت‌نشدنشون گذشته بود آپدیت می‌شدند. بعداً لازم شد که به جای آپدیت روزانۀ لیست، هر ساعت این کار…
خُب دِ نشد!
باز هم منطقی نبودیم! اصلاح‌شدۀ این کوئری هم تا نیم‌ساعت منفعل می‌مونه و این خیلی بده؛ این یعنی تا نیم‌ساعت فیچر مد نظر ما کار نمی‌کنه، و بعدش رفته رفته شروع به کار می‌کنه (اون هم ناقص) تا اینکه کامل بشه، و بعد یهو همه‌چیز ریستارت می‌شه!

منطقیش اینه که به جای چنین شرطی، پروداکت‌هارو به ترتیب تاریخ آپدیت مرتب کنیم و بعد ده‌تای اول (یعنی اون‌هایی که قدیمی‌تر هستند) رو آپدیت کنیم.
👍2😁1
در ادامۀ باگ‌ها، بنگرید به اینجا که اگه null هم باشه، true می‌شه؛ چون:
typeof null === 'object' 😭
🔥4
Time formatting in PHP
👍4
ببینید چی پیدا کردم!
labs.play-with-docker.com
5
By Alex Xu
👍2
Philocode
Avram_A_Marinescu_F._Domain_Driven_Design_Quickly.pdf
In order to create good software, you have to know what that software is all about. You cannot create a banking software system unless you have a good understanding of what banking is all about, one must understand the domain of banking.
#DDDQuickly
👍5