🎉 I love hooks! Take a look at a quick example I just did that adds gesture capabilities to *any* component via
https://codesandbox.io/s/xl88pyo604
useDragGesture() https://codesandbox.io/s/xl88pyo604
CodeSandbox
xl88pyo604 - CodeSandbox
An online editor tailored for
web application development.
web application development.
Two books from google:
🌠 Site Reliability Engineering
🌠 The Site Reliability Workbook
https://landing.google.com/sre/books/
🌠 Site Reliability Engineering
🌠 The Site Reliability Workbook
https://landing.google.com/sre/books/
LinkPlace
https://twitter.com/mathias/status/1057611461999112192
من یه چیزی رو همیشه میگم، بازم میگم، و فکر میکنم باید خیلی بگم. وقتی من برنامه نویسای وب یا مثلا اپ موبایل و اینارو میبینم خیلی از این مدل پست ها و حرف ها بینشون زیاده.
یه مثال مشابه مثلا، یادمه یه گروهی بود که توش برنامه نویسای iOS بودن، یکی اومد یه اسنیپت گذاشت برای این که چطوری اعداد اینگیلیسی رو فارسی بکنیم، بعد اونجا یه تابعی بود که اسمش یادم نیست (برای همین بذارین بهش بگیم قلام)، قلام میومد تو یه استرینگ یه عدد رو میگرفت و لوکالایزش میکرد به فارسی. چیزی که این آدم تهش نوشته بود اینطوری بود:
این جور چیزا باید واضح ترین چیزای روز اول دانشگاه باشن و هنوز توی JS چیزایی رو دربارشون حرف زده میشه که یکم زیادی بده برای یه برنامه نویس که دربارش حرف بزنه. چند وقت پیش یه پست معروف تو مدیوم پخش شده بود که یکی اومده بود برسی کرده بود که اگه شما به جای آرگومان یه آبجکت رو به عنوان آپشن توی جی اس استفاده بکنین پرفورمنسش کمتره
اینا چیزای بینهایت واضحین، همشون رو همه تو تو چند هفته اول برنامه نویسی مقدماتی دانشگاه باید بخونن، این خیلی واضحه که وقتی شما دارین یه آبجکت رو پاس به عنوان آرگومان استفاده میکنین به جای این که یه مقدار رو رفرنسش رو بفرستین دارین رفرنس یه هش تیبل رو میفرستین که خودش باید مقدار استرینگی بگیریه و باز بکنه و مموری چک بکنه و تهش یه رفرنس دیگه بده. واضحه که اولی سریع تره.
این که چرا کسی اینارو نمیدونه، به طور واضح فک میکنم اینکه کسی درسایی مثل الگوریتم رو جدی نمیگیره و برنامه نویسای وب و موبایل برنامه نویسی کمی انجام میدن و بیشتر خودشون رو وصل کردن به API ها. من همیشه بهتون گفتم که بشینین خودتون کد بنویسین، اینقدر فریمورک استفاده نکنین، برنامه های سطح پایین تر بنویسین، بازی های فکری الگوریتیم بکنین، یکم پراجک اویلر حل بکنین. بازم میگم، تو یه زبونی که کامپایل نمیشه کامپایلری نیست که بیاد از یه آرایه ای که اصلا آرایه نیست لینک لیسته به طور پیش بینی رفرنس خونه بگیره که دیستراکشن رو بدون ایتریشن هندل بکنه، معلومه که باید آرایه رو ایتریت بکنه که رفرنس دربیاره، این خیلی بده که برنامه نویسای جی اس اصلا به این چیزای پرفورمنسی فک نمیکنن.
از اون بدتر اینکه تو جایی مثل فیسبوک و اینا، خیلیاشون دانشگاه نرفتن، تیم react یک نفر آدمی که دانشگاه رفته داره، برای همین خیلی جاها از معماریشون بیخوده و بازم همه دنیا دارن استفاده میکنن ازش بدون این که خیلی به این چیزاش نگاه بکنن. نمیگم که برین خودتون رو خفه بکنین با الگوریتم، ولی اینطوری هم نباشه که مشکلات یه کامیونیتی این چیزا باشه.
یه مثال مشابه مثلا، یادمه یه گروهی بود که توش برنامه نویسای 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 یک نفر آدمی که دانشگاه رفته داره، برای همین خیلی جاها از معماریشون بیخوده و بازم همه دنیا دارن استفاده میکنن ازش بدون این که خیلی به این چیزاش نگاه بکنن. نمیگم که برین خودتون رو خفه بکنین با الگوریتم، ولی اینطوری هم نباشه که مشکلات یه کامیونیتی این چیزا باشه.