Pure Coder pinned «سلام دوستان یه دورهمی خیلی خیلی یهویی چند دقه دیگه شروع میشه اینجا در مورد سالید صحبت میکنیم خوشحال میشم بیاید 😍»
Pure Coder
سلام دوستان یه دورهمی خیلی خیلی یهویی چند دقه دیگه شروع میشه اینجا در مورد سالید صحبت میکنیم خوشحال میشم بیاید 😍
عالی بود 😍
خودم از مسیری که توی بحثمون طی شد لذت بردم
خودم از مسیری که توی بحثمون طی شد لذت بردم
کاش برنامه نویس ها هر کدوم یه مدیر برنامه داشتن
بعد شرکت ها برای جابجایی برنامه نویس ها حق ترانسفر میدادن ..
مثلن فلان برنامه نویس با ۶۰ میلیون یورو از شرکت A به شرکت B منتقل شد...
بعد گند میزدن توی کدها ولی با این وجود حواله های ۱۰۰ میلیاردی خودرو میگرفتن ....
هواردارهاشون میومدن در شرکت تجمع میکردن و میگفتن این برنامه نویسه که خیلی باگ تولید میکنه رو حق ندارین بذارین جایی بره...
بخاطر اینکه ۵۰ هزار تومن از قراردادت مونده بود، فسخ میکردی و به یه شرکت دیگه میرفتی و محرومیت تعلیقی برات میبریدن...
@purecoder_ir
بعد شرکت ها برای جابجایی برنامه نویس ها حق ترانسفر میدادن ..
مثلن فلان برنامه نویس با ۶۰ میلیون یورو از شرکت A به شرکت B منتقل شد...
بعد گند میزدن توی کدها ولی با این وجود حواله های ۱۰۰ میلیاردی خودرو میگرفتن ....
هواردارهاشون میومدن در شرکت تجمع میکردن و میگفتن این برنامه نویسه که خیلی باگ تولید میکنه رو حق ندارین بذارین جایی بره...
بخاطر اینکه ۵۰ هزار تومن از قراردادت مونده بود، فسخ میکردی و به یه شرکت دیگه میرفتی و محرومیت تعلیقی برات میبریدن...
@purecoder_ir
زبان هایی مثل c و c++ مستقیم به native machine code کامپایل میشن و از این رو زبان های کامپایلری محسوب میشن.
ولی زبان هایی مثل جاوا و سی شارپ هم کامپایلری هستند و هم مفسری. 😳
ابتدا به یک زبان میانی کامپایل میشن و بعد موقع اجرا (run time), کدهای تولید شده به اون زبان خط به خط اجرا میشن.
این کار توی جاوا توسط JVM و توی دات نت توسط CLR انجام میشه.
تمام زبان های دات نت مثل سی شارپ و اف شارپ به یک زبان میانی مشترک کامپایل و بعد توسط CLR اجرا میشن.
این امر یعنی کامپایل نشدن مستقیم این زبان ها به native machine code باعث میشه که یک بار کدهای نوشته شده به این زبان ها رو کامپایل کنیم و بعدش توی هر ماشینی که خواستیم اجرا کنیم و وابسته به ماشین نباشیم.😳
@purecoder_ir
ولی زبان هایی مثل جاوا و سی شارپ هم کامپایلری هستند و هم مفسری. 😳
ابتدا به یک زبان میانی کامپایل میشن و بعد موقع اجرا (run time), کدهای تولید شده به اون زبان خط به خط اجرا میشن.
این کار توی جاوا توسط JVM و توی دات نت توسط CLR انجام میشه.
تمام زبان های دات نت مثل سی شارپ و اف شارپ به یک زبان میانی مشترک کامپایل و بعد توسط CLR اجرا میشن.
این امر یعنی کامپایل نشدن مستقیم این زبان ها به native machine code باعث میشه که یک بار کدهای نوشته شده به این زبان ها رو کامپایل کنیم و بعدش توی هر ماشینی که خواستیم اجرا کنیم و وابسته به ماشین نباشیم.😳
@purecoder_ir
گروهی از دانشمندان ۵ میمون را در قفسی قرار دادند.
در وسط قفس یک نردبان و بالای نردبان دسته ای موز گذاشتند.
هر زمانی که میمونی بالای نردبان میرفت تا موزها را بردارد، دانشمندان بر روی سایر میمونها آب سرد میپاشیدند.
پس از مدتی هر وقت که میمونی بالای نردبان میرفت سایرین او را کتک میزدند.
مدتی بعد هیچ میمونی علیرغم وسوسهای که داشت جرات بالا رفتن از نردبان را به خود نمیداد.
دانشمندان تصمیم گرفتند که یکی از میمونها را بردارند و با یک میمون جدید جایگزین کنند. اولین کاری که این میمون جدید انجام داد این بود که سعی کرد تا بالای نردبان برود، که بلافاصله توسط سایرین مورد ضرب قرار گرفت.
پس از چندبار کتک خوردن میمون جدید با این که نمیدانست چرا، اما یاد گرفت که بالای نردبان نرود.
میمون دومی جایگزین گردید و همان اتفاق تکرار شد. میمون جدید اول هم در کتک زدن میمون جدید دوم شرکت میکرد. سومین میمون هم جایگزین شد و دوباره همان اتفاق (کتک خوردن) تکرار گردید.
به همین ترتیب چهارمین و پنجمین میمون نیز عوض شدند.
آن چیزی که باقی مانده بود گروهی متشکل از ۵ میمون بوده که با این که هیچگاه آب سردی بر روی آنها پاشیده نشده بود، میمونی را که بالای نردبان میرفت را کتک میزدند.
اگر امکان داشت که از میمونها بپرسند که چرا میمونی که بالای نردبان میرود را کتک میزنند شرط خواهیم بست که جواب آنها این خواهد بود:
من نمیدانم، همه این کارو میکنن.
این جواب به نظر شما آشنا نیست؟
در زمینه ی فنی که کار میکنید چطور؟🤔
@purecoder_ir
در وسط قفس یک نردبان و بالای نردبان دسته ای موز گذاشتند.
هر زمانی که میمونی بالای نردبان میرفت تا موزها را بردارد، دانشمندان بر روی سایر میمونها آب سرد میپاشیدند.
پس از مدتی هر وقت که میمونی بالای نردبان میرفت سایرین او را کتک میزدند.
مدتی بعد هیچ میمونی علیرغم وسوسهای که داشت جرات بالا رفتن از نردبان را به خود نمیداد.
دانشمندان تصمیم گرفتند که یکی از میمونها را بردارند و با یک میمون جدید جایگزین کنند. اولین کاری که این میمون جدید انجام داد این بود که سعی کرد تا بالای نردبان برود، که بلافاصله توسط سایرین مورد ضرب قرار گرفت.
پس از چندبار کتک خوردن میمون جدید با این که نمیدانست چرا، اما یاد گرفت که بالای نردبان نرود.
میمون دومی جایگزین گردید و همان اتفاق تکرار شد. میمون جدید اول هم در کتک زدن میمون جدید دوم شرکت میکرد. سومین میمون هم جایگزین شد و دوباره همان اتفاق (کتک خوردن) تکرار گردید.
به همین ترتیب چهارمین و پنجمین میمون نیز عوض شدند.
آن چیزی که باقی مانده بود گروهی متشکل از ۵ میمون بوده که با این که هیچگاه آب سردی بر روی آنها پاشیده نشده بود، میمونی را که بالای نردبان میرفت را کتک میزدند.
اگر امکان داشت که از میمونها بپرسند که چرا میمونی که بالای نردبان میرود را کتک میزنند شرط خواهیم بست که جواب آنها این خواهد بود:
من نمیدانم، همه این کارو میکنن.
این جواب به نظر شما آشنا نیست؟
در زمینه ی فنی که کار میکنید چطور؟🤔
@purecoder_ir
گفتن جملاتی مثل "نمیدونم"، "نظری ندارم"، "اطلاعاتم کافی نیست" و ... رو تمرین کنیم.
خطرناک ترین چیز برای آدم اینه که در مقابل یه گروهی فاز استاد بودن برداره و از گفتن چنین جمله هایی شرم داشته باشه.
دوزار سواد که استادی نداره 🤦♂🤦♂🤦♂ (با کدوم "س" بود🤔🤔)
@purecoder_ir
خطرناک ترین چیز برای آدم اینه که در مقابل یه گروهی فاز استاد بودن برداره و از گفتن چنین جمله هایی شرم داشته باشه.
دوزار سواد که استادی نداره 🤦♂🤦♂🤦♂ (با کدوم "س" بود🤔🤔)
@purecoder_ir
🔥clean architecture
✅یه معماری لایه ای هست
✅توی هر لایه ممکنه از پترن های مختلف استفاده بشه و چیزی که توی تصویر میبینید فقط یک مثاله
✅نکته ی مهم نحوه ی ارتباط بین لایه های مختلف هست و مهم تر از اون تفکیک لاجیک های مختلف از هم.
@purecoder_ir
✅یه معماری لایه ای هست
✅توی هر لایه ممکنه از پترن های مختلف استفاده بشه و چیزی که توی تصویر میبینید فقط یک مثاله
✅نکته ی مهم نحوه ی ارتباط بین لایه های مختلف هست و مهم تر از اون تفکیک لاجیک های مختلف از هم.
@purecoder_ir
اگه بخواین یه تست برای فانکشن زیر بنویسید، چطوری مینویسید:
🤔🤔🤔
@purecoder_ir
public int Add(int first, int second)
{
return first + second;
}
🤔🤔🤔
@purecoder_ir
Pure Coder
اگه بخواین یه تست برای فانکشن زیر بنویسید، چطوری مینویسید: public int Add(int first, int second) { return first + second; } 🤔🤔🤔 @purecoder_ir
نیازی به تست نوشتن برای این فانکشن نیست 😝
یعنی اگه توی یه پروژه ای چنین چیزی داشتی نیازی به تست نداره.
انقدر ساده هست که جایی برای خطا و اشتباه کردن نداره.
🔥کد کمتر، زندگی بهتر.
(تست هم کد محسوب میشه)
👻برای سوال مصاحبه خوبه👻
@purecoder_ir
یعنی اگه توی یه پروژه ای چنین چیزی داشتی نیازی به تست نداره.
انقدر ساده هست که جایی برای خطا و اشتباه کردن نداره.
🔥کد کمتر، زندگی بهتر.
(تست هم کد محسوب میشه)
👻برای سوال مصاحبه خوبه👻
@purecoder_ir
هوش مصنوعی امروزه دقیقن انسان رو توی همون راستایی که داره حرکت میکنه تقویتش میکنه.
اگه یه انسان دانا، با دانش و متخصص ازش استفاده کنه، در مدت زمان کمتر به تولید محصول باکیفیت تر کمک میکنه.
اگه یه انسان خنگ، احمق و غیر متخصص ازش استفاده کنه هم در همون جهت به تولید یه محصول آشغال کمک میکنه. چون کار اون آدم تولید آشغال بوده و هوش مصنوعی هم کمکش میکنه.
سعی کن در درجه ی اول متخصص باشی و خنگ نباشی.
@purecoder_ir
اگه یه انسان دانا، با دانش و متخصص ازش استفاده کنه، در مدت زمان کمتر به تولید محصول باکیفیت تر کمک میکنه.
اگه یه انسان خنگ، احمق و غیر متخصص ازش استفاده کنه هم در همون جهت به تولید یه محصول آشغال کمک میکنه. چون کار اون آدم تولید آشغال بوده و هوش مصنوعی هم کمکش میکنه.
سعی کن در درجه ی اول متخصص باشی و خنگ نباشی.
@purecoder_ir
وقتی میبینم بعد این همه داد و فریاد که انقدر اضافه کاری نکنید و توی آپ های موبایل این معماری ها رو به کار نبرید و هنوز یه عده آموزشش میدن (اشتباه هم آموزش میدن) و یه عده هم با اشتیاق استفاده میکنن.😜
@purecoder_ir
@purecoder_ir
چیزی که گوگل برای معماری آپ های فلاتری پیشنهاد داده یک معماری لایه ای هست که وقتی بیزینس لاجیک داشته باشید یه چیزی شبیه به معماری هایی مثل کلین میشه (حتمن نباید اسمش آورده بشه...شبیهن) و وقتی که بیزینس لاجیک نداشته باشید یک معماری دو لایه خواهد بود.
همون چیزی که بارها میگفتیم که در عدم حضور بیزینس لاجیک (که توی اکثر اپ های موبایل رایجع) نیاری به لایه ها و کارهای اضافی نیست👍
امید است که پند بگیرید.
@purecoder_ir
همون چیزی که بارها میگفتیم که در عدم حضور بیزینس لاجیک (که توی اکثر اپ های موبایل رایجع) نیاری به لایه ها و کارهای اضافی نیست👍
امید است که پند بگیرید.
@purecoder_ir
کدوم پترن به اضافه کردن Middleware به پروسه ی اصلی کمک میکنه ؟
Anonymous Quiz
10%
Visitor
24%
Adapter
12%
Decorator
6%
Command
48%
نمیدونم، دیدن جواب
همیشه توی هر دوره ی آموزشی(با هر عنوانی، دوره برنامه نویسی، پکیج موفقیت و ...) ده تا بیست درصد افراد شرکت کننده موفق میشن. (در مورد درصد دقیق میشه بحث کرد و محل بحث فعلی ما نیست)
این ۲۰ درصد موفق، نشون دهنده ی خوب بودن دوره ی مورد نظر نیستن، چرا که این ها در هر صورت و با یکم بالا پایین موفق میشدن.
حالا من یه دوره درست میکنم و بعد از اتمام اون دوره ۲۰ درصد موفق رو بولد میکنم و میکنم توی چشم مخاطب و هیچ حرفی از ۸۰ درصدی که هیچی نشدن نمیزنم.
همه هم میگن عجب دوره ای، بهتر از این نمیشه 😳😳😳
@purecoder_ir
این ۲۰ درصد موفق، نشون دهنده ی خوب بودن دوره ی مورد نظر نیستن، چرا که این ها در هر صورت و با یکم بالا پایین موفق میشدن.
حالا من یه دوره درست میکنم و بعد از اتمام اون دوره ۲۰ درصد موفق رو بولد میکنم و میکنم توی چشم مخاطب و هیچ حرفی از ۸۰ درصدی که هیچی نشدن نمیزنم.
همه هم میگن عجب دوره ای، بهتر از این نمیشه 😳😳😳
@purecoder_ir
❓اگه در حین کلین کردن و ریفکتور کردن کد فهمیدیم که کاری که داریم در جهت کلین و خوانا تر کردن کد انجام میدیم، پرفورمنس رو یکم خراب میکنه، تکلیف چیه؟
✅مارتین فاولر میگه به ریفکتور کردنت ادامه بده و کدت رو کلین کن و بعدش اگه واقعن مشکل پرفورمنس داشتی حلش کن.
✅باب مارتین و Kent Beck میگن مشکلات پرفورمنسی رو تا خودشون رو نشون ندادن، الکی خودتو درگیرش نکن.
🔥در کل در مورد پرفورمنس نباید به صورت حسی عمل کنیم و بخوایم وسواس زیاد به خرج بدیم، باید اجازه بدیم هر موقع واقعن خودشو نشون داد، اقدام کنیم.
🔥این به معنای بد کد زدن نیست، فقط وسواس نداشته باشیم. در هر صورت تجربه های قبلی میتونن خیلی کمک کننده باشن.
🔥بعضی مواقع ممکنه بهبود پرفورمنس باعث بشه کد یکم ناخواناتر بشه. (ممکنه)
@purecoder_ir
✅مارتین فاولر میگه به ریفکتور کردنت ادامه بده و کدت رو کلین کن و بعدش اگه واقعن مشکل پرفورمنس داشتی حلش کن.
✅باب مارتین و Kent Beck میگن مشکلات پرفورمنسی رو تا خودشون رو نشون ندادن، الکی خودتو درگیرش نکن.
🔥در کل در مورد پرفورمنس نباید به صورت حسی عمل کنیم و بخوایم وسواس زیاد به خرج بدیم، باید اجازه بدیم هر موقع واقعن خودشو نشون داد، اقدام کنیم.
🔥این به معنای بد کد زدن نیست، فقط وسواس نداشته باشیم. در هر صورت تجربه های قبلی میتونن خیلی کمک کننده باشن.
🔥بعضی مواقع ممکنه بهبود پرفورمنس باعث بشه کد یکم ناخواناتر بشه. (ممکنه)
@purecoder_ir
تیم های مختلف یک سازمان نباید انقدری بزرگ بشن که مدیریت تیم و ارتباط و هماهنگی بین اعضای تیم سخت بشه.
توی آمازون از این قانون دم دستی استفاده میکنن 👆👆
@purecoder_ir
توی آمازون از این قانون دم دستی استفاده میکنن 👆👆
@purecoder_ir