LinkPlace
152 subscribers
262 photos
32 videos
103 files
3.43K links
يه جایی که
لينكایی كه به نظرمون باحاله رو به اشتراک ميذاريم؛ از پروگرمينگ تا نجوم و ...! بقيه هم استفاده كنن و منبع های بیشتری در اختیارشون قرار بگیره

a place for sharing our researchs links to use them again and for others to have with more sources
Download Telegram
🎉 I love hooks! Take a look at a quick example I just did that adds gesture capabilities to *any* component via useDragGesture()

https://codesandbox.io/s/xl88pyo604
Two books from google:

🌠 Site Reliability Engineering
🌠 The Site Reliability Workbook


https://landing.google.com/sre/books/
LinkPlace
https://twitter.com/mathias/status/1057611461999112192
من یه چیزی رو همیشه می‌گم، بازم می‌گم، و فکر می‌کنم باید خیلی بگم. وقتی من برنامه نویسای وب یا مثلا اپ موبایل و اینارو می‌بینم خیلی از این مدل پست ها و حرف ها بینشون زیاده.

یه مثال مشابه مثلا، یادمه یه گروهی بود که توش برنامه نویسای iOS بودن، یکی اومد یه اسنیپت گذاشت برای این که چطوری اعداد اینگیلیسی رو فارسی بکنیم، بعد اونجا یه تابعی بود که اسمش یادم نیست (برای همین بذارین بهش بگیم قلام)، قلام میومد تو یه استرینگ یه عدد رو میگرفت و لوکالایزش میکرد به فارسی. چیزی که این آدم تهش نوشته بود اینطوری بود:

for 0 to 9 do
text = gholam( 1, ۱, text )
text = gholam( 2, ۲, text )
...
text = gholam( 9, ۹, text )
end
return text

که خوب هر برنامه نویسی میدیدش درجا می‌گفت که این داره ده بار روی استرینگ میچرخه (چون برای هر عدد یه بار می‌چرخه) و در نتیجه باید اینطوری نوشته می‌شد:

newText = string in size of text

for letter, index in text do
newLetter = case of letter
"۱" -> "1"
"۲" -> "2"
...
"۹" -> "9"
x -> x
nextText[index] = newLetter
end

return newText

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

این جور چیزا باید واضح ترین چیزای روز اول دانشگاه باشن و هنوز توی JS چیزایی رو دربارشون حرف زده میشه که یکم زیادی بده برای یه برنامه نویس که دربارش حرف بزنه. چند وقت پیش یه پست معروف تو مدیوم پخش شده بود که یکی اومده بود برسی کرده بود که اگه شما به جای آرگومان یه آبجکت رو به عنوان آپشن توی جی اس استفاده بکنین پرفورمنسش کمتره

func( a, b, c ) vs func({ a: ..., b: ..., c: ... })

که خوب به بیلیون ها دلیل یه برنامه نویس باید از بیلیون سنگی دیدن این قضیه اینو بفهمه، ولی تعجب کسی که نوشته بودتش و این که تو وب اونقدر پخش شد نشون میداد نه هیشکی همچین چیزی رو نمیدونه.

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

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

از اون بدتر اینکه تو جایی مثل فیسبوک و اینا، خیلیاشون دانشگاه نرفتن، تیم react یک نفر آدمی که دانشگاه رفته داره، برای همین خیلی جاها از معماریشون بیخوده و بازم همه دنیا دارن استفاده میکنن ازش بدون این که خیلی به این چیزاش نگاه بکنن. نمی‌گم که برین خودتون رو خفه بکنین با الگوریتم،‌ ولی اینطوری هم نباشه که مشکلات یه کامیونیتی این چیزا باشه.