یادداشت های یه برنامه نویس
280 subscribers
39 photos
3 videos
3 files
80 links
این کانال برای در میان گذاشتن یادداشت ها و تجربیات جالب در مورد برنامه نویسی هست امیدوارم دوست داشته باشین.

@one_programmer

https://t.me/one_programmer

ادمین @EngMohsen

Linkedin:https://www.linkedin.com/in/mohsen-rajabi72
Download Telegram
@one_programmer
مایکروسافت نسخه 15.2 ویژوال استودیو 2017 را منتشر کرد
https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes

@one_programmer
@one_programmer
ماکروسافت نسخه 15.3 ویژال استودیو 2017 را به صورت preview منتشر کرد
https://www.visualstudio.com/en-us/news/releasenotes/vs2017-Preview-relnotes

@one_programmer
مطلب خیلی مهمی براتون آماده کردم، امیدوارم با آخرش بخونید و ازش استفاده کنید.
ارزش خواندن رو داره حتما بخوانید
@one_programmer
@one_programmer

Net Core. چیست و چرا ماکروسافت دست به همچین تغییر عظیمی زده؟
⁣برای مدت زمان طولانی ، زمانی که توسعه دهندگان NET. نیازمند این بودند که Solution خود را به پلتفرم دیگری غیر از ویندوز بیاورند ، عموما این شامل زبان های دیگر همانند Java و C میشد ، و این بدان معنا بود که پایگاه های داده همواره تقسیم شده و تکراری و با تکنولوژی های مختلف می‌شدند . پیاده سازی راه حل با جاوا یا دیگر زبان های Cross Platform در این مورد ، اجرا شدنش زیاد راحت و بی دردسر نیست و همواره شامل یکسری توافقات می‌باشد . تا همین اواخر این امر همیشه یک مشکل و چالش بزرگ برای توسعه دهندگان و سازمان ها بود ... . یا برنامه نویس هایی که میخواستن پروژه ایی به صورت Cross Platform یا مخصوص سیستم عامل دیگر(لینوکس) بنویسن Net. گزینه خوبی برای اون ها نبود، چون Cross Paltfrom نبود(با پروژه MONO میشه Net. رو روی لینوکس اجرا کرد منتها به خوبی و بی باگ بودن ویندوز نیست) و سراغ راه حل های دیگه میرفتن مثل java, java script, ++c میرفتن، که دردسر های خودشون رو داشتن. برای مثال جاوا عمدا برای کارهای بزرگ کارآمد بود چون هزینه نیرو و زمان توسعه و نوع توسعه زمانگیر بود و برنامه نویس های جاوا حقوق های به نسبت بالاتری داشتن، هر پروژه ایی ارزش استفاده از جاوا رو نداره. از اونو ++C توسعه سختی تو وب داره و هرکسی نمیره سمت، و نیرو متخصص کمی تو حوضه وب کار میکنن. اما Java Script تفاوتی بین این دو داشت و روز به روز در حال گسترش هست، با استفاده از Node js توسعه سخت و زمانبری نداره، از طرفی بازدهی خیلی عالی از خودش به جا میزاره البته قبل Net Core. !!، از سمتی Cross Platform هست، از طرف دیگه خیلی راحت میشه با استفاده از ابزار هایی مثل Electron برنامه Desktop به صورت Cross Platform نوشت مانند Atom, Slack, Visual Studio Code و.. برنامه های بزرگی هستن که با Electron نوشته شدن.
⁣برگردیم سر بحث اصلی⁣ ماکروسافت در گذشته یک سیاست داشت که بر دور هر کدی دیوار می‌کشید و کدهای Open Source را بد میدانست، حتی استیو بالمر مدیریت قبلی ماکروسافت، لینوکس رو سرطان نامید که داره دنیا رو فرا میگیره. اما حالا تحت رهبری ساتیا نادلا ، سیاستی را در پیش گرفته است که همه چیز Open و با جامعه باشد، سیاست ساتیا نادلا ماکروسافت رو به فروغ گذشته و بیشتر از اون رسانده، تو این مدت چند سال اخیر ماکروسافت همیشه جزو شرکت هایی بوده که بیشترین کامیت و repo رو روی گیتاپ داشته، حتی مواقعی بیشترین کامیت همواره در اختیار ماکروسافت بوده. الآن ماکروسافت سورس های خیلی زیادی رو روی گیتاپ قرار داده که نشان از این سیاست خوب دارد. در حال حاظر پروژه های بزرگی که روی گیتاپ هستن، میشه از Asp , Entity Framework, visual studio code, kestrel ,dot net ... .

⁣خب NET Core. چیست و به چه دلیل برای ما مهم است ؟

Net Code. از ابتدا نوشته شده و بسیار سبک و ماژولار و Cross Platform و Open Source هست. خود ماکروسافت در مورد فرق بین Net. و Net Core . این شکلی بیان میکنه
چرا باید از Net Core. استفاده کنیم؟
1- اگه نیاز به مستقل بودن از Platform داریم (به معنی Cross Platform بودن و اجرا شدن پروژه روی لینوکس-مک-ویندوز است)
2- اگه نیاز به معماری ⁣Microservices داریم (این معماری به شدت در حال رشد و استفاده در شرکت های بزرگ هست و Auzre ماکروسافت هم داحل سرویس خود از این امکان پشتیانی میکنه)
3- استفاده از ⁣Containers ها (مثل داکر)
4- نیاز به سرعت و بازدهی بالا در مقیاس بزرگ
نمیخام زیاد وارد بحث Net Core. بشم، بیشتر بحث رو سمت وب میبرم یعنی Asp Net Core که از Net Core. که بالا بحث کردیم استفاده میکنه.

@one_programmer
@one_programmer


برنامه هایی که با Asp Net Core نوشته میشن مزیت های زیر دارن:
1- مستقل از Platform: یعنی برنامه وب شما در همه سیستم عامل ها مک، لینوکس، ویندوز به راحتی اجرا میشن.
2- فریمورک Open Source هست و همه افراد جهان میتونن سورس رو ارتقا بدن
3- وب سرویس ⁣Kestrel: به این معنی هست که ماکروسافت پروژه اپن سورسی رو روی گیتاپ قرار داده به اسم ⁣KestrelHttpServer که میتونه پروژه رو بدون IIS اجرا کنه. جالب اینجا هست این وب سرویس از کتابخونه ⁣libuv استفاده میکنه که برای هاست کردن Node Js نوشته شده بود و تاکید اون اجرای عملیات IO به صورت Async هست. جالبته بدونید در تست هایی که ماکروسافت از این سرویس گرفته که سورس اون تو گیتاپ هست بنده بعدا براتون میزارم، این وب سرویس نزدیک به 8 برابر از Node Js که به سرعت معروف هست سریعتره !! واقعا جای تقدیر داره فکر کنید 8 برابر :)
4- تزریق وابستگی به صورت توکار: به صورت توکار IOC Container با امکانات خوب برای بحث Inversion Of Controll داره
5- با فریمورک های مدرن سمت کلاینت یکپارچه شده: فریمورک های مثل Gulp ,...
6- بازدهی (Performance): طبق تست های انجام شده برنامه های نوشته شده به شدت بازدهی بالایی دارن، نزدیک به 8 برابر سریعتر از Node Js , نزدیک به 3 برابر سریعتر از زبان Go , نزدیک به 2/5 برابر سریعتر از Java Servlet
7- محیط توسعه Cross Paltfrom: شما میتونید داخل هر سیستم عامل برنامه Asp Net Core رو توسعه بدید مثل لینوکس و مک
8- پشتیبانی از DBMS های معرف: با Entity Framework جدید خیلی راحت میتونید با دیتابیس های اراکل، Mysql،DB2،Sqllite و.. متصل شوید.
9- باز نویسی Asp: این فریمورک از ابتدا باز نویسی شده و بسیار ماژولار و سبک هست، مهندسی نویسی شده. شما همه جاها باید از Interface ها استفاده کنید که خیلی راحت میتونید Class خودتون رو داخل کانفیگ پروژه Impl و Inject کنید⁣


@one_programmer
@one_programmer

طبق صحبت ها گذشته راجبه ماکروسافت و open source کردن پروژه هاش، ماکروسافت سایتی معرفی کرده که تمام پروژه های open source خودش رو‌معرفی کرده.
@one_programmer
@one_programmer
گزارش حقوق سال 95 ایران تلنت و گروه شغلی برنامه نویسی و توسعه نرم‌افزار
سایت کاریابی ایران تلنت که بیشتر در حوزه مشاغل صنعتی و شرکتی فعالیت می‌کند چند سال است که بر اساس یک سری نظر سنجی، گزارشی سالانه تولید می‌کند تحت عنوان گزارش حقوق و دستمزد. یکی از بخش‌های ثابت این گزارش، بخش «برنامه نویسی و توسعه نرم‌افزار و وب» است. ایران تلنت مدعی است که این گزارش بر اساس نظرسنجی از بیش از صد هزار نفر از شاغلین در سراسر کشور تهیه شده است.
گزارشی که اخیراً توسط ایران تلنت منتشر شده مخصوص تهران است. علی الظاهر گزارشاتی برای دیگر شهرها نیز منتشر خواهد شد. گزارش سال 1395 بر اساس داده‌های شاغلین تمام وقت است و مبنای حقوق، میانگین خالص دریافتی ماهانه پس از کسر بیمه و مالیات است. گزارش در دو نسخه شرکت های کوچک (زیر 100 نفر) و شرکت های بزرگ (بالای 100 نفر) تهیه شده است. حقوق شرکت های بزرگ‌تر در بیشتر موارد بیشتر از شرکت های کوچک‌تر است. حقوق شرکت های بزرگ‌تر به طور خیلی تقریبی حدود 10 تا 20 درصد بیشتر از شرکت های کوچک‌تر است. من در اینجا فقط گزارش شرکت های کوچک‌تر را بررسی می‌کنم چون بیشتر شرکت های نرم افزاری در این دسته قرار می گیرند.
طبق این گزارش، برنامه نویسانی که مسئولیت نظارت بر عملکرد افراد رده های پایین‌تر سازمانی را بر عهده دارند، یعنی رده بنفش که در متن گزارش توضیح داده شده، بین یک میلیون و دویست تا هفت میلیون تومان درآمد ماهانه دارند. این اطلاعات از دیتای نظرسنجی 302 نفر مشارکت کننده استخراج شده است. عناوین شغلی این رده عبارت هستند از:
- مدیر پروژه
- برنامه نویس ارشد
- مهندس نرم‌افزار
- مدیر فناوری اطلاعات
- مدیر تولید

اما چه چیزی باعث این تنوع می شود؟ چه چیزی روی درآمد یک شخص در این رده تأثیر گذار است؟ عوامل مختلفی وجود دارند:

سابقه کار یکی از مهم‌ترین هاست. کسانی که بیش از 7 سال سابقه کار دارند 74 درصد بیشتر از کسانی که کمتر از سه سال سابقه کار دارند حقوق می گیرند.
شرکت های 11 تا 50 نفره حدود 46 درصد بیشتر از شرکت های 1 تا 10 نفره حقوق پرداخت می کنند.
فارغ التحصیلان دانشگاه‌های سراسر حدود 31 درصد بیشتر از دانشگاه آزادی‌ها حقوق می گیرند.
دارندگان مدرک کارشناسی ارشد حدود 17 درصد بیشتر از دارندگان مدرک کارشناسی حقوق می گیرند.
کسانی که در حد پیشرفته ای به زبان انگلیسی مسلط هستند حدود 17 درصد بیشتر از سایرین حقوق می‌گیرند
شرکت های خصوصی 16 درصد بیشتر از شرکت های دولتی حقوق پرداخت می کنند.
شرکت های صرفاً نرم افزاری 15 درصد بیشتر از شرکت های خدمات آنلاین حقوق پرداخت می کنند.
شرکت های حوزه خدماتی حدود 15 درصد بیشتر از شرکت های تولیدی حقوق پرداخت می کنند.
دقت کنید که این مقایسه‌ها در مورد کسانی انجام شده که مسئولیت نظارت بر عملکرد افراد رده های پایین‌تر سازمانی را بر عهده دارند و در متن گزارش نام آن‌ها رده بنفش است. رده پایین‌تر و بالاتر از این رده تفاوت فاحشی با این رده دارند. مثلاً در رده پایین‌تر تفاوت قابل توجهی بین دانشگاه سراسری و دانشگاه آزاد وجود ندارد. یا اینکه در رده بالاتر تفاوت حقوق افراد بالای 7 سال سابقه کار و کمتر از 3 سال سابقه کار به 192 درصد می رسد.
جالب است بدانید که شغل توسعه نرم‌افزار به همراه چند شغل معدود دیگر بالاترین پرداختی را در بین کل مشاغل موجود در گزارش دارد.
منبع: http://blog.afsharm.com/%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%D8%AD%D9%82%D9%88%D9%82-%D8%B3%D8%A7%D9%84-95-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%AA%D9%84%D9%86%D8%AA-%D9%88-%DA%AF%D8%B1%D9%88%D9%87-%D8%B4%D8%BA%D9%84%DB%8C-%D8%A8/
@one_programmer
@one_programmer
Interview Questions for Senior Software Engineers
- What is something substantive that you've done to improve as a developer in your career?
- Would you call yourself a craftsman (craftsperson) and what does that word mean to you?
- Implement a <basic data structure> using <some language> on <paper|whiteboard|notepad>.
What is SOLID?
- Why is the Single Responsibility Principle important?
- What is Inversion of Control? How does that relate to dependency injection?
- How does a 3 tier application differ from a 2 tier one?
- Why are interfaces important?
...

https://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx

@one_programmer
@one_programmer

تفاوت Concurrency با Parallelism
خیلی خوب با تصاویر توضیح داده
@one_programmer
Forwarded from Mohsen Rajabi
talk.zip
445.4 KB
@one_programmer

تفاوت Concurrency با Parallelism
خیلی خوب با تصاویر توضیح داده
@one_programmer
@one_programmer
خبر خوبی که دیروز منتشر شد این بود که NET Core 2.0 منتشر شد
از 13 هزار api تو نسخه 1.1 به 30 هزار api تو نسخه 2.0 رسیده.
از لحاظ performance هم از نسخه 1.1 بهتر عمل کرده
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/
در کنار متشر شدن این نسخه، پروژه های دیگه هم مثل
Entity Framework .net core 2.0
.Net Standard 2.0
Visual Studio 15.3
هم منتشر شدن.
@one_programmer
@one_programmer
این درگاه پرداخت بانک سامان هست!
برنامه نویس هاشون debugger گذاشتن برای جاوا اسکریپت هاشون، یادشون رفته بردارن :))))))
@one_programmer
@one_programmer
اگر از نخستین نسخه‌ی محصول خود خجالت‌زده نیستید، محصول را خیلی دیر بیرون داده‌اید.
- رید هافمن
@one_programmer