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
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 یک نفر آدمی که دانشگاه رفته داره، برای همین خیلی جاها از معماریشون بیخوده و بازم همه دنیا دارن استفاده میکنن ازش بدون این که خیلی به این چیزاش نگاه بکنن. نمی‌گم که برین خودتون رو خفه بکنین با الگوریتم،‌ ولی اینطوری هم نباشه که مشکلات یه کامیونیتی این چیزا باشه.
ظاهرا تیم UNIX، ویچرال دام رو هم اختراع کرده بودن.
LinkPlace
من یه چیزی رو همیشه می‌گم، بازم می‌گم، و فکر می‌کنم باید خیلی بگم. وقتی من برنامه نویسای وب یا مثلا اپ موبایل و اینارو می‌بینم خیلی از این مدل پست ها و حرف ها بینشون زیاده. یه مثال مشابه مثلا، یادمه یه گروهی بود که توش برنامه نویسای iOS بودن، یکی اومد یه…
اخه مشکلی که پاس دادن آبجکت به عنوان آرگومان به یه فانکشن داره اینه که شما باید ترتیب رو اونجا رعایت بکنی وگرنه بهت undefined برمیگردونه
ولی اگه بریزیشون تو آبجکت بعد بفرستی دیگه نیاز نیست ترتیب رو رعایت کنی
میگی از اینی که پاس دادی من مثلا a رو میخوام
میره واست میارتش
LinkPlace
اخه مشکلی که پاس دادن آبجکت به عنوان آرگومان به یه فانکشن داره اینه که شما باید ترتیب رو اونجا رعایت بکنی وگرنه بهت undefined برمیگردونه ولی اگه بریزیشون تو آبجکت بعد بفرستی دیگه نیاز نیست ترتیب رو رعایت کنی میگی از اینی که پاس دادی من مثلا a رو میخوام میره…
عاره و می‌تونی آپشن تعریف بکنی. من منظورم اینکه چرا برنامه نویس های جی‌اس نباید بدونن که این کار پرفورمنس خوره؛ واقعا چیز پیچیده ای نیست. ولی جی‌اسیا خیلی تمبل شدن و زیادی بی اهمیت کد میزنن. نتیجش میشه این که چیزای ساده رو جامعش یادش رفته و این خیلی بده.
این یک تکه کد واقعی کاتلین هست! بدون استفاده از سیستم ماکرو یا کلا هر نوع پردازش متنی.

https://gist.github.com/amrza/2f3edb30677b87593bb9a9227df43a34
سیستم xv6 یه سیستم عامل عین یونیکس ۶ئه که MIT برای یاد دادن سیستم عامل ساخته. فرقش اینکه با C استاندارد نوشته شده و مالتی پراسسوره و یه کتاب داره که اگه دوست دارین یاد بگیرین میتونین برین بخونین و حال کنین

https://pdos.csail.mit.edu/6.828/2018/xv6.html