چند سال پیش که خام تر بودم، نرم افزار های بزرگ رو که نگاه میکردم کلی ازشون اشکال پیدا میکردم میگفتم اینا که این همه پول نیرو و علمشو دارن چرا همچین اشکالاتی دارن؛
بعد فهمیدم مهندسی نرم افزار مثل ساختمون ساختن نیست نقششو بکشی بسازی بری بالا... اینطوریه که هر نرم افزاری که میبینین سر پاست ظاهرا شاید ساختنش کاری نداره ولی پشتش پره از تصمیمهای سخت، خطاهای انسانی، بازنویسیها، مصالحهها بین کیفیت و زمان تحویل، و کلی شببیداری و سختی تحریب و از نو ساختن هستش.
@Linuxor
بعد فهمیدم مهندسی نرم افزار مثل ساختمون ساختن نیست نقششو بکشی بسازی بری بالا... اینطوریه که هر نرم افزاری که میبینین سر پاست ظاهرا شاید ساختنش کاری نداره ولی پشتش پره از تصمیمهای سخت، خطاهای انسانی، بازنویسیها، مصالحهها بین کیفیت و زمان تحویل، و کلی شببیداری و سختی تحریب و از نو ساختن هستش.
@Linuxor
توی اینترنت پر پروژه های آماده ماشین لرنینگی پایتونی هستش اما هیچ کدوم توی پروداکشن واقعی استفاده نمیشن و بیشتر جنبه تحقیقی تفریحی دارن، اینجا لیست پروژه های ماشین لرنینگی هست که واقعا میشه برای پروداکشن و هزاران کاربر استفاده بشن
github.com/EthicalML/awesome-production-machine-learning
@Linuxor
github.com/EthicalML/awesome-production-machine-learning
@Linuxor
یکی از مدلهای فوقالعاده تولید عکس از متن DALL-E هستش،
اما خیلی سنگینه و روی سیستمهای معمولی جواب نمیده!
اینجا اومدن یه نسخه سبکترش ساختن به اسم DALL-E Mini که باهاش میتونی فقط با یه جمله مثل "یک گربه ربات در باغ گل شبانه" یه تصویر زیبا بسازی
فقط کافیه ایمپورتش کنید و ازش استفاده کنید (میتونید اول توی colab تستش کنید)
github.com/borisdayma/dalle-mini
@Linuxor
اما خیلی سنگینه و روی سیستمهای معمولی جواب نمیده!
اینجا اومدن یه نسخه سبکترش ساختن به اسم DALL-E Mini که باهاش میتونی فقط با یه جمله مثل "یک گربه ربات در باغ گل شبانه" یه تصویر زیبا بسازی
فقط کافیه ایمپورتش کنید و ازش استفاده کنید (میتونید اول توی colab تستش کنید)
github.com/borisdayma/dalle-mini
@Linuxor
این استار هایی که توی تلگرام میزنید اینکانسیستنته، یعنی مثلا همین الان دوتا بود بعد شد یکی،
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)
کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)
@Linuxor
1
واقعا سینیور دولوپر به کی میگن؟
هیچ تعریف دقیقی از سینیور دولوپر وجود نداره هر شرکتی یه تعریفی برای خودش داره ولی این سه تا مورد رو یادتون باشه یه مرز خوبی بهتون نشون میده :
+ باید بتونه پروژه با مقیاس بالا رو هندل کنه: قشنگ نشون میده معماری، دیزاین و دواپس رو خوب فهمیده کلمه مقیاس بالا خودش یه بار سنگین داره و هر کسی نمیتونه ادعاش کنه دولوپر های عادی معمولا سمتش نمیرن.
+ باید بتونه هدایت تیم کنه : اینم نشون میده فرد میتونه تصمیمهای فنی استراتژیک بگیره و مسئولیت خروجی تیم رو بپذیره. همچنین نیازمند یه درک خوبی از Soft skill هست برای این کار.
+ باید بتونه پروژههایی با چالش فنی خاص یا فناوری جدید رو هندل کنه : مثلا یه هوش مصنوعی یه چیزی اضافه کنه یا اینکه زیرساخت و CI/CD رو از صفر بتونه بنویسه یا ابزار اختصاصی برای توسعه بسازه، سینیور وابسته به تکنولوژی خاصی نیست در کل انعطاف بالایی داره.
@Linuxor
هیچ تعریف دقیقی از سینیور دولوپر وجود نداره هر شرکتی یه تعریفی برای خودش داره ولی این سه تا مورد رو یادتون باشه یه مرز خوبی بهتون نشون میده :
+ باید بتونه پروژه با مقیاس بالا رو هندل کنه: قشنگ نشون میده معماری، دیزاین و دواپس رو خوب فهمیده کلمه مقیاس بالا خودش یه بار سنگین داره و هر کسی نمیتونه ادعاش کنه دولوپر های عادی معمولا سمتش نمیرن.
+ باید بتونه هدایت تیم کنه : اینم نشون میده فرد میتونه تصمیمهای فنی استراتژیک بگیره و مسئولیت خروجی تیم رو بپذیره. همچنین نیازمند یه درک خوبی از Soft skill هست برای این کار.
+ باید بتونه پروژههایی با چالش فنی خاص یا فناوری جدید رو هندل کنه : مثلا یه هوش مصنوعی یه چیزی اضافه کنه یا اینکه زیرساخت و CI/CD رو از صفر بتونه بنویسه یا ابزار اختصاصی برای توسعه بسازه، سینیور وابسته به تکنولوژی خاصی نیست در کل انعطاف بالایی داره.
@Linuxor
3
اگه بکاند کار میکنی این واسه تو بهشته، یه مجموعه از سوال از هرچیزی که ممکنه توی بکاند بهش بخوری از طراحی نرمافزار، الگوهای طراحی (Design Patterns)، پایگاه داده، معماری سیستم، امنیت، سیستمهای توزیعشده و کلی چیز دیگه گفته
خیلی از سوالهاشم طوری طراحی شدن که نقطهی شروع یه بحث باشن، نه فقط جواب قطعی، یعنی قشنگ کلی چیز جدید به روت باز میکنه برای آمادگی مصاحبه هم میشه از سوالاش استفاده کرد ولی بیشتر هدف یادگیریه:
github.com/arialdomartini/Back-End-Developer-Interview-Questions
@Linuxor
خیلی از سوالهاشم طوری طراحی شدن که نقطهی شروع یه بحث باشن، نه فقط جواب قطعی، یعنی قشنگ کلی چیز جدید به روت باز میکنه برای آمادگی مصاحبه هم میشه از سوالاش استفاده کرد ولی بیشتر هدف یادگیریه:
github.com/arialdomartini/Back-End-Developer-Interview-Questions
@Linuxor
14
اگه خواستین فروم و یا صفحه گفتگو برای چیزی بسازین این خیلی کارتون رو راحت میکنه با چند تا کلیک بدون دردسر میتونید روی یه سرور و دامین شخصی خودتون فروم بسازید
نسخه دمو و تستی (الکی توش ثبت نام کنید ایمیل الکی بزنید تستیه وریفای هم نداره) :
demo.flarum.site
سورس کدش و مستنداتش برای نصب و ساختنش برای خودتون :
github.com/flarum/flarum
@Linuxor
نسخه دمو و تستی (الکی توش ثبت نام کنید ایمیل الکی بزنید تستیه وریفای هم نداره) :
demo.flarum.site
سورس کدش و مستنداتش برای نصب و ساختنش برای خودتون :
github.com/flarum/flarum
@Linuxor
19
توی تلگرام دیدین عکس های دانلود نشده چه شکلین؟ انگار یه تصویر مات از تصویر اصلیه که وقتی دانلودش میکنی با کیفیت میشه؛ اونارو با این لایبری میسازن در واقع یه نسخه فشرده شده از عکس هستش (در حد چند ده تا کاراکتر)
این لایبری براتون یه چیزی شبیه هش از عکس میسازه و باهاش میتونید قبل از دانلود شدن به یوزر یه پیشنمایش کلی از عکس نشون بدین
github.com/woltapp/blurhash
@Linuxor
این لایبری براتون یه چیزی شبیه هش از عکس میسازه و باهاش میتونید قبل از دانلود شدن به یوزر یه پیشنمایش کلی از عکس نشون بدین
github.com/woltapp/blurhash
@Linuxor
100
شرکت اوبر (اسنپ خارجیا) یکی شرکت های بزرگه که از زبان گو استفاده میکنه، اینجا میتونید کد استایلی که با زبان گو میزنن رو ببینید نسخه ترجمه شده به فارسی هم داره ولی یکم دیر تر از نسخه اصلیش آپدیت میشه
github.com/uber-go/guide
@Linuxor
github.com/uber-go/guide
@Linuxor
5
توی وب یه چیزی داریم به اسم Client-side Error Tracking کارش اینه که خطا هارو جمع میکنه و به سرور میفرسته. (زمانی که شما یه وب رو باز میکنید و خطایی رخ میده خطا توی مرورگر شماست و سرور هیچ درکی ازش نداره کار این Error Tracking اینه که خطا رو برای مانیتورینگ به سرور بفرسته)
ابزار Sentry یکی از معروف ترین Error Tracking ها هستش روش کارش هم اینطوریه که یه کد جاوااسکریپت میده میزاری توی بخش Head سایتت و اون کده برای همه یوزر ها ران میشه و خطا هارو جمع آوری میکنه و به سمت سرور میفرسته. (میتونید به صورت Self-hosted روی سرور خودتون هم بالا بیاریدش)
ابزار Sentry رو حتی برای غیر کلاینت ساید مثل PHP و پایتون و بقیه زبان هام میتونید استفاده کنید خیلی کامله.
@Linuxor
ابزار Sentry یکی از معروف ترین Error Tracking ها هستش روش کارش هم اینطوریه که یه کد جاوااسکریپت میده میزاری توی بخش Head سایتت و اون کده برای همه یوزر ها ران میشه و خطا هارو جمع آوری میکنه و به سمت سرور میفرسته. (میتونید به صورت Self-hosted روی سرور خودتون هم بالا بیاریدش)
ابزار Sentry رو حتی برای غیر کلاینت ساید مثل PHP و پایتون و بقیه زبان هام میتونید استفاده کنید خیلی کامله.
@Linuxor
5