روز هفتم – چالش ۱۰۰ روز کد زدن

درود بر شما عزیزان،

روز هفتم رو با یادگیری مفهوم Hook در کتابخانه React گذروندم. همانطور که در مطلب روز دوم چالش هم اشاره کردم ری اکت از نسخه ۱۶.۸ به بعد برنامه نویسی فانکشنال و قابلیت جدیدی به نام Hook رو اضافه کرد. این یعنی از نسخه مذکور به بعد می تونیم به جای استفاده از کلاس برای ایجاد کامپوننت، از توابع استفاده کنیم و در نتیجه به گفته توسعه دهنده های فیسبوک در این ویدیو ۹۰٪ کد تمیزتر و سبک تری داشته باشیم.

داکیومنت توضیحات Hook بسیار واضح و شفاف توضیح داده اما برای برخی از مسائل تکمیلی سری به وبسایت usehook زدم. داخل این وبسایت با مثال های کاربردی به طور کامل پیاده سازی هوک ها در پروژه رو به تصویر کشیده. یک کتابخونه تکمیلی هم برای پیاده سازی هوک های سفارشی سازی شده روی گیت هاب به این آدرس منتشر شده که می تونید برای پروژه هاتون ازش استفاده کنین.

تا درودی دیگر، بدرود.

نوشته روز هفتم – چالش ۱۰۰ روز کد زدن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مرتب سازی آرایه ها – تکنیک های برنامه نویسی

برنامه نویسی

مرتب سازی مقادیر یک آرایه در برنامه نویسی، احتمالا جزو سوالاتی است که برای هر برنامه نویسی پیش می‌آید! فارق از اینکه با چه زبانی و چه IDE یا Code Editorای کار می‌کنید، باید این رو در نظر داشته باشید که ساده نگاه کردن شما به مسئله هستش که براتون راه حل میسازه. نکته: همیشه موقع حل چنین چالیش هایی همه به دنبال این هستند که مثلا هر عدد رو با عدد بقلیش رو چک کنن! یا هر عدد رو با کل اعداد دیگه! اما این مدل راه حل ها باعث ایجاد سردرگمی میشه و بیش از پیش از جواب دور می‌شید.

توی بخش بعد ساده ترین راه ممکن توی عالم رو برای این مسئه بررسی می‌کنیم.


الگوریتم مرتب سازی مقادیر یک آرایه

  1. ابتدا کمترین و بیشترین مقدار در آرایه رو پیدا کنید.
  2. یک آرایه به طول آرایه اصلی بسازید.
  3. از کمترین مقدار به سمت بیشترین مقدار رفته و هر بار یکی به مقدار قبل اضافه کنید.
  4. در صورتی که مقدار حال حاضر در مرحله ۳ با یکی از خانه‌های آرایه اصلی برابر بود اولین خونه‌ خالی توی آرایه مرحله ۲ رو به عدد مورد نظر نسبت بده در غیر این صورت برگرد مرحله ۳
  5. آرایه دوم رو چاپ کن
  6. پایان

برای دسترسی به سورس کد نمونه به منبع مراجه کنید.

منبع: ایستگاه تکنیک در وبسایت علیرضا بازرگانی

نوشته مرتب سازی آرایه ها – تکنیک های برنامه نویسی اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

روز ششم – چالش ۱۰۰ روز کد زدن

درود بر شما عزیزان،

ششمین روز از چالش هم گذشت و در این روز با یاری خدا و با همتی مضاعف سرفصل های Advanced کتابخانه React هم تمام شد. از فردا پروژه اصلی خودم که به نوعی استارت آپ محسوب می شه رو استارت می زنم و به امید خدا تا پایان این چالش ۱۰۰ روزه به مرحله بهره برداری می رسونمش 🙂

طی سال های گذشته که به برنامه نویسی مشغولم،‌ یکی از دغدغه های دوستان و همکارانم که از نزدیک اون رو لمس کردم، خرید ابزارها و تجهیزات به روز برای برنامه نویسی است. به عنوان مثال فردی که هر روز در اینترنت جستجو می کنه تا آخرین مدل مک بوک رو خریداری کنه و باهاش کد بزنه. یا فردی که حتما باید مانیتور دوم و سوم و … داشته باشه تا موفق به تایپ یک خط کد بشه!
من ۱۰۰٪ مخالف این ایده نیستم و در اینکه ابزار مناسب هر حرفه ای می تونه سرعت رشد و بهره وری در اون حرفه رو بالا ببره شکی نیست، اما از طرفی باید در نظر داشت که آیا حد تعادل هم رعایت می شود؟ آیا در مدت زمانی که برای جستجوی فلان مدل لپ تاپ صرف شده نمی توانستیم ۱۰۰ خط بیشتر کد بزنیم؟ آیا هزینه ای که صرف خرید مانیتور دوم شده، نمی توانست خرج یک دوره آموزشی جذاب و کاربردی شود؟

به نقل از جیسون فراید: بسیاری از گلف بازان آماتور فکر می‌کنند که آنها نیاز به باشگاه‌های گران قیمت دارند اما در اصل این نوعِ چرخش دست است که مهم است.

به تعبیری دیگر شاید بهتر باشه ابتدا با ابزارهای موجود، تمرکز رو روی پیشرفت خودمون تا سطح قابل قبولی (حرفه ای) بزاریم و سپس برای افزایش بهره وری و پیشرفت تا سطوح بالاتر (فوق حرفه ای) به فکر ارتقا ابزار باشیم.

نظر شما در این باره چیه؟

تا فردایی دیگر و روزی دیگر همه شما رو به خداوند بزرگ و منان می سپارم.

نوشته روز ششم – چالش ۱۰۰ روز کد زدن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویسی به کمک Xamarin چطور سرعت کار را افزایش می دهد؟

شاید تا الان بارها مطالب مختلفی راجب برنامه نویسی اپلیکیشن های موبایل بوسیله زامارین رو خونده باشین و هردفعه با این کلمه مواجه شده باشین که زامارین سرعت توسعه رو زیاد میکنه! فکر کردین که چطور ممکنه سرعت کار زیاد بشه؟

بزارید با یه مثال بهتون توضیح بدم که ما چطور میتونیم با کمک زامارین برنامه هامون رو با سرعت بیشتری تولید کنیم!

فرض کنید که ما قرار هست یک لیست از اطلاعات رو به کاربر نشون بدیم برای این کار نیاز به یک Listview یا RecyclerView داریم همینطور نیاز هست که آیتم هارو شخصی سازی کنیم و طبق نیازمون اون هارو چینش بدیم.

اگر این برنامه رو با اندروید استودیو بصورت Native انجام بدیم باید این کار هارو انجام بدیم.

  • یه ویو برای RecyclerView یا Listview بسازیم
  • یه ویو دیگه برای آیتم های هر ردیف بسازیم
  • یه کلاس مدل بسازیم
  • یه کلاس آداپتور بسازیم و ردیف هارو متصل کنیم به ویو (کلی کد نویسی باید بکنیم…)
  • داخل ویو اصلی اداپتور رو مقدار دهی کنیم و…

حتی اگه بخوایم همه کدهارو کپی پیست کنیم یه ۵ تا ۱۰ دقیقه ای زمان میبره تا سرهم بشه!

حالا بزارید یه نگاه به زامارین بندازیم:

یه ListView میزاریم روی لایوت و همین لیست ویو رو براش Template تعریف میکنیم. تمام!

  
  
 
  
   
     
    
     
       
      
        
        
       
         
        
          
          
          

به همین راحتی قالب ItemTemplate رو خودمون هرطور که دوست داشته باشیم ایجاد میکنیم و با کمک Binding ها مقدار هارو متصل میکنیم به کنترل ها، برای نمایش داده ها تو لیست ویو هم کافیه داده هارو که بصورت List هستن وصلشون کنیم به ItemSource لیست ویو. در کمتر از ۳ دقیقه کامل میشه پیاده سازیش کرد (اگرم کدهارو کپی پیست کنید بیشتر از چند ثانیه نمیشه) !

دیگه نیاز نیست که آداپتور بسازیم، چندتا ویو جداگونه براش بسازیم و… حتی برای ایونت های کلیک و… هم نیازی به کدنویسی نیستش و از همون ایونت های پیشفرض میتونیم براحتی استفاده کنیم.

حالا علاوه بر این موارد ما میتونیم از کتابخونه های بسیار زیادی که برای دات نت موجوده و کاملا هم رایگان هستن استفاده کنیم که دیگه نیازی نباشه خودمون براش کد بنویسیم.

نوشته برنامه نویسی به کمک Xamarin چطور سرعت کار را افزایش می دهد؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

روز پنجم – چالش ۱۰۰ روز کد زدن

درود بر شما عزیزان،

در آخرین لحظات شب درست نزدیک نیمه شب در حال آپلود پست امروز برای پنجمین روز از چالش مهیج و زیبای ۱۰۰ روز کد زدن هستم.

همچنان طبق برنامه در حال یادگیری کتابخانه React هستم و امروز موفق شدم با کمک و الهام گرفتن یکی از پروژه های موجود بر روی Codepen، همچنین مرور JavaScript و نگاهی کلی به تگ های HTML و CSS، پروژه کارت ویزیت الکترونیک رو به پایان برسونم و سورس کد اون رو برای شما عزیزان روی گیت هاب با این آدرس قرار بدم. امیدوارم بتونید در پروژه هاتون ازش استفاده کنید.

به افرادی که قصدشون شروع یادگیری و کار با کتابخانه React و فریمورک React Native هست، شدیدا توصیه می کنم از دوره JavaScript سایت موزیلا استفاده کنند. مزیت این دوره علاوه بر سادگی و روانی اون،
حذف موضوعاتی از سرفصل های جاوااسکریپت است که هرگز در برنامه نویسی React از آنها استفاده نمی شود.

تا فردایی دیگر همه شما رو به خداوند بزرگ و منان می سپارم.

نوشته روز پنجم – چالش ۱۰۰ روز کد زدن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

کدام زبان برنامه نویسی برای شروع بهتر است؟

به لطف اینترنت، امروزه همه افراد دنیا می‌توانند به منابع آموزشی در کلاس جهانی که در اینترنت موجود است، فارغ از سن، جنسیت، محل زندگی و دیگر عوامل تبعیض‌آمیز، دسترسی داشته باشند. بسیاری از علاقه‌مندان به فراگیری برنامه‌نویسی نیز مانند دیگر افراد، از منابع آنلاین آموزشی برای فراگیری مهارت برنامه‌نویسی استفاده می‌کنند. یکی از انگیزه‌های اصلی این افراد، گام نهادن در زمینه شغلی پردرآمد و جذاب برنامه‌نویسی محسوب می‌شود.

اما، برای کسی که قصد دارد به یک «توسعه‌دهنده نرم‌افزار» (Software Developer) مبدل شود، در ابتدای راه این پرسش مطرح است که: «چه زبان برنامه‌نویسی بیاموزم؟». این سوال، به ویژه برای افرادی مطرح می‌شود که برای اولین بار قصد دارند یک زبان برنامه‌نویسی را به طور جدی بیاموزند. هر جستجوی اینترنتی منجر به رسیدن به مقالات، نوشته‌ها، ویدئوها و حتی پادکست‌های متعدد با رویکردها و دیدگاه‌های مختلف می‌شود. اما واقعا کدام زبان برنامه‌نویسی را باید آموخت؟

«آریل کاموس» (Ariel Camus) در شرکت «مایکروورس» (Microverse) که یک مدرسه برنامه‌نویسی آنلاین است فعالیت می‌کند. او می‌گوید:

بسیاری از دانشجویان تمام وقت ما، پیش‌تر برای یادگیری زبان‌های گوناگون از منابع مختلف اقدام کرده‌اند، ولی هیچ‌گاه در هیچ یک از آن‌ها متخصص نشده‌اند. بهترین راه برای خروج از وضعیت بیان شده، آن است که در درجه اول بر یادگیری مفاهیم برنامه‌نویسی و سپس به طور کامل روی فراگیری یک زبان تمرکز شود. پس از سال‌ها کار با برنامه‌نویسانی از بیش از ۵۰ کشور جهان، می‌توانم به جرات بگویم فرصت‌های شغلی بیشتر و بهتر، نصیب افرادی می‌شود که به یک زبان به طور کامل مسلط هستند؛ نه افرادی که با زبان‌های متعدد آشنایی کمی دارند.

شاید این صحبت بدین معنا باشد که در حوزه برنامه‌نویسی یک دریاچه کوچک اما عمیق، بهتر از اقیانوسی عظیم ولی بسیار کم عمق است. البته نباید فراموش کرد کسانی که بر مفاهیم برنامه‌نویسی و یک زبان تسلط خیلی خوبی دارند، در یادگیری دیگر زبان‌های برنامه‌نویسی نیز معمولا توانمند هستند و سریع‌تر می‌توانند یک زبان جدید را بیاموزند.

اما اگر اکنون برای شما این پرسش مطرح است که روی کدام زبان برنامه‌نویسی تمرکز کنید، پیشنهاد می‌کنیم ادامه این مطلب را مطالعه کنید.

یک زبان همه‌منظوره بیاموزید

به توسعه‌دهندگان تازه‌کاری که نمی‌دانند قصد دارند به طور تخصصی در کدام زمینه برنامه‌نویسی مشغول به فعالیت شوند، توصیه می‌شوند که یک زبان «همه‌منظوره» (General Purpose) را فرا بگیرند. زیرا این نوع زبان‌ها به طور گسترده مورد استفاده قرار می‌گیرند و محدود به یک دامنه خاص نیستند. در ادامه، چند زبان برنامه‌نویسی همه‌منظوره که یادگیری آن‌ها توصیه می‌شود، معرفی شده‌اند. البته، توصیه می‌شود پس از مطالعه این مطلب، حتما دو مطلب «ده زبان برنامه نویسی که باید در سال ۱۳۹۸ یاد بگیرید» و «زبان های برنامه نویسی که نباید در سال ۲۰۱۹ بیاموزید» را مطالعه کنید تا با اطمینان خاطر و کاملا مصمم، به فراگیری زبان برنامه‌نویسی مورد نظر خود بپردازید.

پایتون

«زبان برنامه‌نویسی پایتون» (Python Programming Language)، ساده است و «نحو» (Syntax) سرراستی دارد که آن را به زبان همه‌منظوره مناسبی برای یادگیری به طور دقیق و کامل مبدل می‌سازد. این زبان دارای ویژگی «سیستم انواع پویا» (Dynamic Type System) و مدیریت حافظه خودکار است و از چندین پارادایم برنامه‌نویسی شامل «برنامه‌نویسی شی‌گرا» (Object-Oriented Programming)، «برنامه‌نویسی تابعی» (Functional Programming) و «برنامه‌نویسی دستوری» (Imperative Programming) پشتیبانی می‌کند. برنامه‌نویسان متعددی، در بسیاری از کاربردها، از کتابخانه‌های جامع استاندارد پایتون استفاده می‌کنند.

برنامه‌های کاربردی وب و دسکتاپ، سرورها، یادگیری ماشین و هوش مصنوعی، همه از پایتون استفاده می‌کنند. پایتون به طور مداوم در سال‌های اخیر صدرنشین لیست برترین زبان‌های برنامه‌نویسی بوده است و در سال ۲۰۱۸، موفق به دریافت عنوان «زبان برنامه‌نویسی سال» در شاخص تیوبی (TIOBE Programming Community Index) شد. شاخص تیوبی، میزان محبوبیت یک زبان برنامه‌نویسی در دوره زمانی مشخصی را بیان می کند. از سوی دیگر، یادگیری پایتون از طریق منابع آنلاین به راحتی امکان‌پذیر است و تعداد فرصت‌های شغلی موجود برای توسعه‌دهنده پایتون در وب‌سایت Indeed، بیش از ۶۶۰۰۰ مورد اعلام شده است (تا لحظه نگارش این مطلب).

جاوا اسکریپت

مطابق با نظرسنجی سالانه توسعه‌دهندگان در وب‌سایت «استک اورفلو» (Stack Overflow)، بیش از ٪۷۰ از همه توسعه‌دهندگان از «جاوا اسکریپت» (JavaScript) استفاده می‌کنند. جاوا اسکریپت یک زبان همه منظوره است که تقریبا در هر حوزه نرم‌افزاری قابل اعمال است؛ همچنین، یکی از زبان‌های فرانت-اند اصلی در وب محسوب می‌شود. جاوا اسکریپت امکان طراحی صفحات وب تعاملی را نیز فراهم می‌کند و استفاده از آن برای اغلب برنامه‌های کاربردی وب، الزامی است.

جاوا اسکریپت یک زبان چند پارادایمی است و از چندین استایل برنامه‌نویسی از شی‌گرا گرفته تا تابعی را پشتیبانی می‌کند. همچنین، دایره گسترده‌ای از کتابخانه‌ها شامل مواردی برای سرورهای بک‌اند را دارا است. این زبان به قدری محبوب است که حتی برای حوزه‌هایی که بهترین گزینه برای آن‌ها محسوب نمی‌شود هم چارجوب‌هایی دارد. از این جمله می‌توان به توسعه بازی‌های کامپیوتری و «واقعیت مجازی» (Virtual Reality) اشاره کرد. تعداد مشاغل موجود برای برنامه‌نویس جاوا اسکریپت تا این لحظه بیش از ۴۰۰۰۰ مورد اعلام شده است. لازم به ذکر است که برای یادگیری جاوا اسکریپت روی اینترنت منابع بسیار متنوعی در دسترس عموم قرار دارد.

روبی

«روبی» (Ruby)، همچون دیگر زبان‌های برنامه‌نویسی از چندین پارادایم برنامه‌نویسی مانند شی‌گرا، تابعی و دستوری پشتیبانی می‌کند. همچنین، دارای ویژگی‌هایی مانند انواع داده پویا و مدیریت حافظه خودکار نیز هست. روبی معمولا برای توسعه برنامه‌های کاربردی وب و همچنین سمت سرور و پایگاه داده، همراه با چارچوب «روبی آن ریلز» (Ruby on Rails) مورد استفاده قرار می‌گیرد.

یکی از بهترین ویژگی‌های روبی، کاربرپسند بودن، به ویژه برای افراد تازه‌کار است. فراگیری زبان روبی به دلیل آنکه نحو آن بسیار نزدیک به زبان انسان است بسیار ساده محسوب می‌شود. روبی می‌تواند کارهای مختلف را با تعداد خطوط کد کمتری نسبت به دیگر زبان‌های برنامه‌نویسی انجام دهد. تعداد فرصت‌های شغلی موجود برای برنامه‌نویسی روبی در وب‌سایت Indeed تا این لحظه بیش از ۹۰۰۰ مورد است.

جاوا

در توصیف زبان «جاوا» (Java) جمله «یک بار بنویس، همه جا اجرا کن» بسیار مشهور است. زیرا، این زبان روی هر پلتفرمی که از آن پشتیبانی کند، اجرا می‌شود. جاوا شناخته شده‌ترین زبان در میان توسعه‌دهندگان تازه‌کار و دومین زبان پر استفاده در استک‌اورفلو است.

جاوا یک زبان چندین پارادایمی مبتنی بر کلاس و شی‌گرا محسوب می شود که به گونه‌ای طراحی شده تا کمترین نیازمندی‌ها برای پیاده‌سازی را داشته باشد. به دلیل ساختار خاص این زبان، جاوا دارای گسترده وسیعی از آرایه‌ها است که در دامنه کاربردهای گوناگونی مورد استفاده قرار می‌گیرند. یکی از شناخته شده‌ترین کاربردهای جاوا، توسعه برنامه‌های کاربردی برای اندروید است؛ اما، این زبان برای تولید برنامه‌های کاربردی دسکتاپ، وب، سرور و شبکه نیز مورد استفاده قرار می‌گیرد. در حالی که نحو جاوا در ابتدای راه دشوار و نگران کننده به نظر می‌رسد، یادگیری جاوا به عنوان اولین زبان برنامه‌نویسی بسیار ارزشمند محسوب می‌شود و می‌تواند به فرد کمک کند تا فرصت‌های شغلی بسیار خوبی به دست آورد. تعداد فرصت‌های شغلی موجود برای عنوان توسعه‌دهندگان جاوا در وب‌سایت Indeed، بیش از ۶۸۰۰۰ است.

آیا زمینه کاری خاصی در حوزه برنامه‌نویسی را در نظر دارید؟

به افرادی که یک زمینه خاص مانند «یادگیری ماشین» (Machine Learning)، توسعه اپلیکیشن‌های موبایل، یا پیوستن به استارتاپ‌ها را مد نظر دارند و به دنبال یادگیری زبان مناسب برای یک هدف خاص هستند، مطالعه ادامه این مطلب توصیه می‌شود.

یادگیری ماشین

مطابق با گزارش «گیت‌هاب» (GitHub)، پایتون پر استفاده‌ترین زبان برای یادگیری ماشین در سال ۲۰۱۸ بوده است. ترکیب دانشی که مهندس یادگیری ماشین از زبان پایتون دارد، با قدرت کتابخانه‌های یادگیری ماشین آن مانند «تنسورفلو» (TensorFlow)، «پانداس» (Pandas)، «بوکه» (Bokeh) و «نام‌پای» (NumPy)، فرد را در شرایطی قرار می‌دهد که فرصت‌های شغلی جذاب و قابل توجهی انتظار او را بکشند.

زبان برنامه‌نویسی R، می‌تواند گزینه بعدی برای کارشناسان یادگیری ماشین باشد. این زبان، موثرترین گزینه برای تحلیل و دستکاری داده‌ها برای اهداف آماری است. همچنین، R بسته‌های گوناگونی را در اختیار کاربر قرار می‌دهد که پیاده‌سازی الگوریتم‌های یادگیری ماشین را آسان می‌سازد. یادگیری R نیز مانند سایر زبان‌ها از طریق منابع آنلاین امکان‌پذیر است.

توسعه موبایل

افرادی که علاقمند به توسعه برنامه‌های کاربردی موبایل هستند، باید مشخص کنند که می‌خواهند به توسعه اپلیکیشن برای پلتفرم اندروید یا iOS بپردازند. جاوا بهترین گزینه برای توسعه اپلیکیشن‌های اندرویدی است. جاوا برای توسعه اپلیکیشن‌های موبایل با جاوای عمومی فرق دارد و دلیل این امر، محدودیت قدرت گوشی‌های هوشمند است. برای مثال، یک برنامه معمولی جاوا تا هنگامی که خاموش شود به اجرا ادامه می‌دهد، در حالی که فعالیت یک برنامه اندرویدی هرگاه در پیش‌زمینه اجرا نشود متوقف خواهد شد.

در iOS، استفاده از زبان «سوئیفت» (Swift) توصیه می‌شود که زبان رسمی اپل برای macOS ،iOS و دیگر کدهایی است که برای محصولات اپل نوشته می‌شوند. برخی از افراد ممکن است زبان «آبجکتیو سی» (Objective-C) را پیشنهاد دهند، زیرا می‌توان با استفاده از آن «رابط کاربری گرافیکی» (Graphical User Interface | GUI) و چارچوب‌های سرشار از ویژگی ساخت. اما برخی از افراد تمایل به یادگیری زبان سوئیفت دارند زیرا یادگیری آن آسان‌تر است و توسط خود اپل تایید شده است.

جاوا اسکریپت نیز گزینه دیگری برای توسعه موبایل است که در ترکیب با HTML و CSS، می‌توان برنامه‌هایی با آن ساخت که قابل تبدیل به «برنامه‌های محلی» (Local Apps) با استفاده از «کاردوا» (Cordova) هستند. مثال دیگر، چارچوب «دات‌نت» (NET.) است که می‌توان از آن برای ساخت برنامه‌ها و تبدیل آن‌ها به برنامه‌های محلی با استفاده از «زامارین» (Xamarin) استفاده کرد. البته، این مثال‌ها اهمیت یادگیری یک زبان همه منظوره را بیش از پیش، آشکارا می‌سازند.

استارتاپ‌ها

برای افرادی که قصد دارند یک استارتاپ را راه‌اندازی کنند و یا به استارتاپ‌ها بپیوندند، آشنایی با هیچ زبانی به اندازه روبی و چارچوب روبی آن ریلز مفید نخواهد بود. روبی زبانی کاربرپسندی برای افراد تازه‌کار محسوب می‌شود و به توسعه‌دهندگان امکان نمونه‌سازی سریع را می‌دهد. همین امر، زبان برنامه‌نویسی روبی را به گزینه‌ای مناسب برای استارتاپ‌ها که نیاز به برداشتن گام‌های سریع دارند مبدل کرده است. به طور کلی، برای کسب فرصت شغلی مناسب در استارتاپ‌ها، فراگیری جاوا اسکریپت، ری‌اکت، روبی (همراه با چارچوب ریلز) توصیه می‌شود.

از یادگیری چه زبان‌هایی باید اجتناب کرد؟

زبان‌های گوناگون زیادی وجود دارند که می‌توان از میان آن‌ها انتخاب کرد. از دیگر زبان‌های محبوب می‌توان به «گو» (Go)، «اسکالا» (Scala)، «تایپ‌اسکریپت» (TypeScript)، «سی‌پلاس‌پلاس» (++C) و «راست» (Rust) اشاره کرد. اگرچه، افرادی که تازه شروع به یادگیری زبان‌های برنامه‌نویسی می‌کنند، بهتر است از فراگیری این زبان‌ها اجتناب کنند. اغلب این زبان‌ها، نسبت به دیگر زبان‌های معرفی شده درای پیچیدگی‌های بیشتری هستند، پیشرفته‌تر محسوب می‌شوند و یا بیش از اندازه روی یک دامنه خاص متمرکز شده‌اند. به طور خلاصه می‌توان گفت: «تمرکز بالا روی یادگیری یک زبان، بهتر از فراگیری چندین زبان به طور هم‌زمان (دستکم در ابتدای راه) است. افرادی که نمی‌دانند چه زبانی یاد بگیرند و هنوز فیلد تخصصی کاری خود را انتخاب نکرده‌اند، باید یک زبان همه‌منظوره را بیاموزند.»

نباید بیش از اندازه روی انتخاب اینکه بهتر است کدام یک از گزینه‌های معرفی شده را فراگرفت، وسواس به خرج داد. در نهایت برای همه این زبان‌ها فرصت‌های شغلی خوبی وجود دارد. آنچه اهمیت دارد، این است که فرد انگیزه کافی، عزم راسخ، تلاش زیاد و توانایی تمرکز بر یک مبحث جهت یادگیری را داشته باشد.

منبع [+]

نوشته کدام زبان برنامه نویسی برای شروع بهتر است؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چالش های رایج برنامه نویسی

تو این چند سال با خیلیا کار کردم، دولوپرای فرانت اند، بک اند و فول استک ها

خیلی از مشکلاتی که بهشون برخورد کردم شبیه هم بودن و حتی منم هر از گاهی قربانی این اشتباهات شدم. تو این مقاله سعی دارم این اشتباهات رایج رو با شما در میون بذارم.


اگر به نون احتیاج دارین، نیاز نیست نونوایی بسازین

تقریبا همه ما با این اشتباه مواجه شدیم. خیلی از برنامه نویسا برای تحویل یه پروژه ساده، درگیر پیاده سازی امکاناتی میشن که انگار قراره این پروژه میلیون ها کاربر داشته باشه و ویژگی های بهش اضافه می کنن که توی اون مقطع هیچ احتیاجی به اونا نیست. این اشتباه یه سری عواقب داره. پیچیدگی بیش از حد پروژه، طولانی تر شدن زمان پیاده سازی، عقب افتادن زمان تحویل پروژه و انجام تست های بیشتر از جمله اونان.

به جای این کار سعی کنید به همون تسکی که دستتونه فکر کنید، نه این که این پروژه بعدها قراره به کجا برسه. وقتی که کاربرا شروع به استفاده از اپ شما کردن وقتشه که به فکر اضافه کردن ویژگی هایی باشید که باعث بهتر شدن اپتون میشه.

ابزار مورد نیازتون رو پیدا کنید و به همونا بچسبین

وقتی که میخواین شروع به پیاده سازی یه پروژه کنین، انتخاب مناسب ابزار خیلی نکته مهمیه. سعی کنین ابزاری رو انتخاب کنین که مطمئن و تست شده باشه و صرفا نیازی که دارین رو برطرف کنه. دقت کنین که پروژه شما قراره قابلیت هایی که ازش انتظار دارین رو برآورده کنه، پس از انتخاب ابزارایی که به دردتون نمیخوره پرهیز کنین. ممکنه حین انتخاب اونا با خودتون بگین تا وقتی که پروژم تموم بشه نسخه نهاییش ریلیز میشه پس فعلا کارمو با همینی که کامل کار نمی کنه ادامه بدم، یا بگین این ویژگیی که میخوام قطعا تا چند ماه دیگه بهش اضافه میشه. اگه این اتفاق افتاد بدونین که مسیر رو اشتباه میرین.

برای انتخاب ابزار مناسب به چنتا نکته باید دقت کنین، بازه های آپدیت شدن، تعداد open issue ها و تعداد افرادی که روش کار می کنن ازین موارد هست. اصولا ابزاری که خیلی وقته کسی براش آپدیت نداده یا توسط یه نفر پیاده سازی میشه گزینه خوبی برای انتخاب نیستن.

خیلی از زبونای برنامه نویسی راه های مشخصی برای قفل کردن نسخه ابزارها دارن و نسخه ای که احتمالا شما میخواین روش قفل بشه آخرین نسخه major اون هست. بعد ازین کار شاید ده ها نسخه جدیدتر ازون ابزار ریلیز بشه ولی وقتی کارتون با همون نسخه ای باهاش کار می کنین را میفته نیاز به آپدیت نیست. بنابراین وقتتون رو صرف آپدیت های بیخود نکنید و به جاش تمرکزتون رو روی پروژه بذارین.

از ابزاهاتون بیشترین و بهترین استفاده رو ببرین

اگر از فریم ورک استفاده می کنین، قطعا راه هایی برای حل مشکلاتی که باهاشون مواجه میشین وجود داره. خیلی از راه حل هارو دیدم که میتونست خیلی راحت تر از طریق helper هایی که خود فریم ورک در اختیارمون قرار میده انجام بگیره. برای اینکه این راه حل هارو بهتر بشناسیم، قبل ازینکه شروع به انجام یه تسک کنین، حتما مشکلات احتمالی رو از documentation فریم ورک بررسی کنین. از اینکه وارد کدای فریم ورک بشین ترسی نداشته باشین. ممکنه اوایل فهمیدن اونا یه مقدار سخت باشه، ولی این کار نه تنها باعث کامل تر شدن درک شما از فریم ورک میشه بلکه با دیدن کدایی که توسط افراد باتجربه تر نوشته شده باعث افزایش مهارت شما میشه.

نکته دیگه در مورد IDEییه که استفاده می کنین. مطمئن شید برای زبونی که باهاش برنامه نویسی می کنین بهترین IDE رو انتخاب کرده باشین. چون یاد گرفتن shortcutها و code snippetهاش میتونه تاثیر زیادی رو سرعت کدنویسیتون داشته باشه. حتی بهتره بعد از یه مدتی code snippetهای مخصوص به خودتون رو داشته باشین تا مواقعی که بهشون نیاز دارین به راحتی بتونین ازونا استفاده کنین.

و از همه مهمتر اینه که debug کردن رو به خوبی یاد بگیرید. اینکه برای چک کردن مقدار یه متغییر اونو تو خروجی چاپ کنین یا با گذاشتن یه علامت مطمئن شین که کدتون وارد یه بلاک بخصوص میشه یا نه debug کردن نیست. اگر انجام اینکار باعث حل مشکل تو مدت کوتاهی میشه مشکل خاصی نداره ولی اگه قراره بیشتر از یه دقیقه طول بکشیه حتما از debugger استفاده کینن. با این کار میتونین مقادیر همه متغیرهاتون رو به راحتی بررسی کنین و مسیرهای احتمالیی که کدتون طی می کنه رو در نظر بگیرین.

در صورتی کامنت بنویسین که حتما به دردبخور باشه

کامنت به درد نخور چه کامنتیه؟ کامنتیه که هیچ اطلاعات اضافیی بهمون نمیده.

مثلا اگر قرار باشه برای یه متد با اسم FetchExtractProcessData کامنت بذارین چی مینیویسین؟ اگر نوشته باشین این متد مسئول Fetch و Extract و Process کردن دیتاست، کامنت خوبی ننوشتین. چون نه تنها هیچ توضیحی نمیده حتی ممکنه بیشتر گیجمون کنه.

از مثال های دیگه کامنت به دردنخور، کامنت هایی هستن که بعد از تغییر کد، آپدیت نشدن و باعث میشن اطلاعات درستی ندن. یا حتی کامنت هایی که مشکل گرامری دارن و اگه کسی اونارو بخونه هیچی ازشون نفهمه.

پس یادتون باشه، اگر دارین کامنتی میذارین که بود و نبودش هیچ فرقی به حال بقیه نمی کنه بهتره اصلا ننویسینش.

اگر همه کامنت هاتون پاک شه، کدتون هنوز قابل فهم هست؟

تو قسمت قبلی متدی رو مثال زدم که اسمش این بود: FetchExtractProcessData

اگر شما هم متدهاتون رو مثل این متد نامگذاری می کنین بدونین کدتون به هیچ وجه خوانا نیست. چون هیچ توضیحی در مورد علت اصلی وجود این متد و کارکرد نهاییش نمیده و صرفا چنتا فعله که پشت سر هم چیده شده. خیلی مهمه که متدها، کلاس ها و متغیرهاتون جوری نامگذاری بشن که هم بامفهوم باشن و هم کسی که اونارو میبینه با یک بار خوندنش اطلاعات خوبی نسبت بهش بدست بیاره. هیچ وقت از اختصار یا از کلمات پیچیده استفاده نکنین و به جاش سعی کنین به زبون ساده توضیحش بدین، ولی سعی کنید این اسامی از ۴ یا ۵ کلمه بیشتر نشن. حتما از Code Linter مخصوص به IDEتون برای مرتب و تمیز بودن کدهاتون استفاده کنین و قبل شروع کار با زبون جدید حتما الگوهای نوشتاری استاندارد مخصوص به زبونتون رو چک کنین.

فرانت اند مهمتره یا بک اند؟

این سوال همیشه بین برنامه نویسا بوده که کودوم سمته که کار مهمتر رو انجام میده. جواب من اینه که فرانت اند مهمتره. نیاز نیست وقتی یه پروژه رو شروع کردین نگران Caching, Performance یا Optimization بک اند باشین، چون قرار نیست از همون اول میلیون ها کاربر از اپتون استفاده کنن. خودتون به اپ هایی که هر روز باهاشون کار می کنین دقت کنین. دلیل اینکه باعث شده شما ازونا خوشتون بیاد چیه؟ این که از آخرین تکنولوژی استفاده می کنن؟ این که همه متدهاشون در بهینه ترین حالت ممکنه؟ مسلما این طور نیست. دلیلش اینه که نحوه ارائه محتوا به شکلیه که احساس خوبی بهتون میده و استفاده ازونا به هیچ وجه گیج کننده و خسته کننده نیست. البته معنی حرفم این نیست که بک اند مهم نیست. مطمئن باشید اگه فرانت به بهترین شکل خودش باشه ولی بک اند مشکل داشته باشه قطعا باعث شکست پروژه میشه.

نکته ای که از همه مهم تره اینه که وقتتون رو صرف کارایی که فقط خودتون یا تعداد خیلی از کاربرا ممکنه متوجهش بشن نکنین. به پروژه به عنوان یه محصول نگاه کنین، محصولی که قراره کاربرا رو جذب خودش کنه. پس از هدر دادن وقتتون روی کارایی که هیچ تاثیری توی ادامه مسیر پیشرفتتون ندارن پرهیز کنید.

پیامایی که تو اپ نشون میدین برای کاربرای عادیه، نه دولوپرا

خیلی مهمه افرادی که قراره با اپتون کار کنن رو به خوبی بشناسین و تجربه کاربریتون بر همین اساس طراحی بشه. جملاتی رو استفاده نکنین که فقط یه دولوپر میتونه اونارو بفهمه. جملاتی مثل “خطای سیستمی” یا “خطا در شبکه” یا حتی نشون دادن exceptionهای کدتون اصلا خوب نیستن و کاربراتون رو فراری میده. از جملات کامل، بامفهوم و ساده استفاده کنین. همین موضوع باعث میشه اونا در مقایل دیدن یه سری ازین خطاها حس بدی نگیرین و به کارشون تو اپ ادامه بدن. به عنوان مثال وقتی کاربر تو اپتون لاگین میکنه به جای نشون دادن “لاگین موفقیت آمیز” میتونین جمله ای رو نشون بدین که حس تعاملی بهتری به کاربر بده.


خیلیا از خودشون میپرسن چجوری میشه برنامه نویس حرفه ای شد؟ این اتفاق نمی تونه یه شبه رخ بده. حرفه ای شدن تو انجام دادن تسک های روزانمون اتفاق میفته، تو نوع نگاهمون به حل مشکلاتی که اغلب مواقع با اونا موجه میشیم. سعی کنید وقتی یه تسکی رو انجام میدین به بهترین شکلش انجام بدین و صرفا انجام دادنش براتون مهم نباشه. برای درک بهتر این موضوع به پروژه هایی که تا حالا انجام دادین فک کنین. آیا انجام دادن اونا تو پیشرفت و رسیدن به نقطه فعلیتون تاثیر مثبت داشته؟ یا صرفا یه کار تکراری بوده مثل بقیه پروژه های قبلیتون؟

سعی کنید نکاتی که گفته شد رو حین انجام پروژه با خودتون مرور کنید تا کدزنی روز به روز براتون لذت بخش تر بشه.

یادتون نره برنامه نویسی هیچ وقت نباید تکراری و عادی بشه.

نوشته چالش های رایج برنامه نویسی اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

پیش پردازنده Sass چیست؟

واژه Sass مخفف کلمات Syntactically Awesome Stylesheets است. Sass را می توان به عنوان یک افزونه برای css در نظر گرفت که کار با استایل ها را برای ما بسیار ساده می کند. به خصوص زمانی که فایل های css شما بسیار بزرگ و پیچیده باشند. Sass مدیریت و نگهداری استایل های css را ساده‌تر می‌کند. به لطف وجود متغیرها، mixins ها، nesting ها و وراثت در این پیش پردازنده، کد های نوشته شده کاملاً سازماندهی می شود.

این کار باعث می شود کار خود را سریعتر پیش ببریم. به خاطر داشته باشید زمانی که در Sass کدهای خود را مینویسیم، مرورگر ها نمی توانند این کدها را درک کنند و دلیل این عدم درک هم این است که کدهای نوشته شده به زبان css نیستند.

 پس ما به یک کامپایلر نیاز داریم تا کد های نوشته شده در Sass را به css تبدیل کنیم. نرم افزار های زیادی برای این کار وجود دارند که بعضی از آنها عبارتند از :

با این حال ما قصد نداریم در این مقاله همه مراحل نصب و کامپایل Sass را بیان کنیم. اگر می‌خواهید تجربه بیشتری در این مورد به دست آورید، به شما پیشنهاد می کنم از یک ویرایشگر آنلاین همچون Codepad استفاده کنید. با این کار نیاز ندارید نرم افزارهای مربوطه را بر روی کامپیوتر خود نصب کنید.

به صورت خلاصه باید بگویم Sass یک پیش پردازنده برای زبان css است. پیش پردازنده ها به ما کمک می کنند از ویژگی های منحصر به فردی در css استفاده کنیم. یک پیش پردازنده زبانی اسکریپتی بوده که به توسعه دهندگان اجازه می دهد کدها را به آن زبان نوشته و سپس به صورت css از آن خروجی بگیرند.

 اگر شما در css مبتدی هستید پیشنهاد می کنم فعلا از رفتن به سراغ پیش پردازنده ها صرف نظر کنید.

چیزی که برای ورود به این دنیای جذاب نیاز دارید این است که درک کاملی از موارد پایه ای و کدهای css داشته باشید. Sass یکی از محبوب‌ترین پیش پردازنده های css است اما Sass تنها پیش پردازنده موجود نیست. موارد دیگری نیز مانند Less و Stylus وجود دارند.

چرا بهتر است از Sass استفاده کنیم؟

اگر شما با دوستان خود که در زمینه front-end کار می‌کنند، صحبت کرده باشید ممکن است آنها به شما گفته باشند html و css زبان هایی با نقطه ضعف های بزرگی هستند. دلیل آن هم این است که کدهای آنها از پیش تعریف شده است و بارها تکرار می‌شود و شما مجبورید کد های تکراری بنویسید.

اگر شما با یک زبان برنامه نویسی واقعی کار کرده باشید حتما اطلاع دارید که در این زبان ها از موارد کاربردی همچون تعریف متغیر ها و توابع استفاده می شود. که می تواند در کد نویسی و سازماندهی کد ها به ما کمک بسیاری بکند. اینجاست که Sass می تواند بیشتر مشکلات و نقطه ضعف های css را برطرف کند.

در واقع Sass مکمل زبان css است. با استفاده از Sass می توان متغیر ها را تعریف کرد و حتی از مفاهیمی همچون وراثت در css استفاده نمود. این ویژگی ها می توانند برای یک طراح فوق العاده باشند.

چگونه از Sass استفاده کنیم؟

قبل از اینکه به توضیح در مورد ویژگی های منحصر به فرد این افزونه کاربردی بپردازم، بهتر است قواعد نوشتاری Sass را بررسی کنیم. باید توجه داشته باشید دو قاعده نوشتاری و یا سینتکس برای Sass وجود دارد که هر دو در نهایت خروجی یکسانی را برای ما تولید می‌کنند

  • SCSS : استفاده از فایلی که دارای فرمت scss. است و با css هم بسیار سازگار است.
  • SASS : استفاده از فایلی که دارای فرمت sass. است. این مورد نیز با css سازگار است و سریع‌تر نوشته می‌شود.

منبع : لرن سورس

https://learnsource.net/article/29/sass-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF

نوشته پیش پردازنده Sass چیست؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

ساخت یک افزونه برای Adobe XD

عکس از صفحه رسمی Adobe XD‌ در توئیتر

اگه جزو طراحانی باشید که یکم برنامه نویسی بلد هستن یا برعکس جزو برنامه نویس هایی باشید که یکم طراحی بلد هستن و در عین حال برای کارهای مربوط به طراحی از Adobe XD استفاده میکنن حتما میدونید که این برنامه به صورت رایگان هست و تعدادی هم پلاگین و افزونه برای افزایش راحتی استفادهاز این برنامه نوشته شده.

حالا ما تو این مقاله میخوایم یکم به API که شرکت Adobe برای نوشتن افزونه معرفی کرده کار کنیم و یک پلاگین خیلی کوچیک رو با هم بنویسیم و در آخر هم چندتا از افزونه هایی که خودم باهاشون کار میکنم و راضی هستم رو معرفی کنم بهتون تا شما هم ازشون استفاده کنید


مقدمات لازم برای شروع

برای اینکه بتونید یک افزونه برای Adobe XD بنویسید با دو تا مورد نیاز هست :

  • دانش اولیه در مورد برنامه نویسی وب خصوصا Js
  • یک ویرایشگر مثل Atome یا Sublime یا هر چیزی که خودتون باهاش راحت هستین

بعد از اون برای شروع کار لازمه تا به آدرس زیر I/O Console خودتون در وب سایت Adobe‌ برید و پلاگین خودتون رو ثبت کنید برای اینکار هم کافیه وارد اکانت خودتون بشید و در لینک بالا بر روی دکمه Create Plugin کلیک کنید و اسم افزونه خودتون رو وارد کنید.

بعد از اون وقتی افزونه رو ساختید به صورت خودکار به صفحه افزونه هدایت میشید که در اونجا میتونید یک پروژه خیلی کوچیک رو که برای افزونه شما تولید شده دانلود کنید. حالا برای استفاده از پروژه‌ای که دانلود کردید در محیط Adobe اگر از سیستم عامل Windows‌استفاده میکنید باید به مسیر زیر برید و پروژه رو در اون قسمت از حالت فشرده خارج کنید :

C:Users%USERNAME%AppDataLocalPackagesAdobe.CC.XD_adky2gkssdxteLocalState 

ام اگه از سیستم Mac استفاده میکنید باید به مسیر زیر برید :

~/Library/Application Support/Adobe/Adobe XD/

با اضافه کردن پروژه خودتون در این مسیر و سپس اجرای XD‌ میتونید به بخش Plugins‌ برید و افزونه خودتون رو که اضافه شده مشاهده کنید. اما بهتره یه نگاهی به ساختار اولیه افزونه داشته باشیم تا بدونیم دقیقا به چه شکلی باید عمل کنیم.

نگاهی به ساختار اولیه

وقتی به پوشه افزونه خودتون دقت کنید در حالت اولیه ما یک فولدر Images‌ داریم که شامل آیکن های مرتبط به افزونه هستن که شما میتونید اون رو با تصویر دلخواه خودتون و در سایزهایی که موجود هستن جایگزین کنید اما علاوه بر این افزونه ما شامل یک فایل main.js و یک فایل manifest.json میشه که فایل اول در واقع فایل اصلی افزونه یا به عبارت دیگه منطق اصلی افزونه شماست و فایل دوم تنها شامل اطلاعات و تنظیمات اصلی خود افزونه میشه.

بررسی فایل Manifest.JSON

بیاید با هم یک نگاه دقیق‌تر به این فایل داشته باشیم تا بدونیم اگه نیاز به تغییر در این بخش بود دقیقا باید چه کاری انجام بدیم. برای اینکه خوانایی این بخش بیشتر باشه من یک تصویر از محتوای فایل رو در این بخش قرار میدم و جلوی هر خط توضیحات مربوط بهش رو مینویسم و در ادامه بخش‌ها مهم‌تر مثل ایجاد منو و Hotkey رو به صورت مجزا توضیح میدم.

فایل Manifest.Json در یک نگاه

فایل بالا تقریبا یک فایل کامل با کلیه تنظیمات مربوط به این فایل میباشد که شما میتوانید مقادیر هر فیلد رو با مقادیر دلخواه خود جایگزین نمایید. اما همانطور که در تصویر بالا مشاهده میکنید شما می‌بایست برای هر آپدیتی که برای افزونه خود درنظر میگیرید علاوه برا تغییر نسخه افزون یک سری توضیحات درباره آپدیت جدید نیز به کاربران ارائه کنید تا کاربران از تغییرات احتمالی افزونه شما با خبر شوند.


همچنین شما میتوانید برای افزونه خود Hotkey های مختلف تعریف کنید تا عملکردهای مختلف افزونه شما از طریق صفحه‌کلید نیز در دسترس کابران باشد اما باید به این نکته توجه داشته باشید که ممکن است افزونه‌های دیگر نیز از این Hotkeyها در افزونه خود استفاده کرده باشن که در این صورت الویت تخصیص این Hotkey به افزونه‌ای که زودتر توسط کاربر نصب شده باشد خواهد رسید. اما جای نگرانی نیست چرا که افزونه شما به خوبی کار خواهد کرد و این مورد باعث نقص در عملکرد افزونه نخواهد شد.

محیط برنامه‌نویسی Adobe XD

تقریبا همه برنامه‌نویسا موقع برنامه نویسی برای اینکه نتایج کار خودشون رو ببین از Print‌ استفاده میکنن حالا این مورد در زبون های مختلف دستورات متفاوتی داره اما در زبان جاوا اسکریپت معمولا از Console.log استفاده میکنن اما خب حتما براتون سوال پیش میاد که خب حالا به فرض ما ازش داخل افزونه خودمون استفاده کردیم کجا میتونیم خروجی رو ببینیم ؟

باید بهتون بگم که Adobe XD یه محیط تست و رفع باگ برای افزونه‌های خودش فراخم کرده که از طریق منو زیر خیلی راحت میتونید بهش دسترسی داشته باشید :

Plugins > Development > Developer Console

با باز کردن این بخش شما میتوانید تمام Log‌های مربوط به افزونه‌های نصب شده روی سیستم خودتون رو مشاهده کنید و درهنگام برنامه‌نویسی ازش برای تست و رفع باگ استفاده کنید.


حرف آخر

تو این مقاله سعی کردم یه توضیح مختصر درباره شروع نوشت یک افزونه کوچیک برای Adobe XD آشناتون کنم در مقالات بعدی سعی میکنم تا بیشتر وارد بحث برنامه نویسی بشیم و API هایی که برای نوشت یک افزونه در اختیار داریم و باهم بررسی کنیم.


اما اگه خودتون علاقه مند هستید هر چه زودتر وارد بخش برنامه‌نویسی بشید و یا به نوشتن یک افزونه فکر میکنید اما نمیدونید از کجا میتونید بیشتر در موردش بخونید من چندتا منبع معرفی میکنم تا ازش استفاده کنید:

https://github.com/AdobeXD/plugin-samples
https://adobexdplatform.com/plugin-docs/reference/how-to-read.html
https://medium.com/adobetech/adobe-xd-plugin-apis-are-here-7d25e39c555b

نوشته ساخت یک افزونه برای Adobe XD اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

آموزش #F قسمت ۱۱

https://virgool.io/fsharp/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-f-%D9%82%D8%B3%D9%85%D8%AA-%DB%B1%DB%B0-pmc2g16wxysi

در همه زبانهای برنامه نویسی دستور switch رو داریم که توی زبانهای فانکشنال معمولا اسمش match‌ هست. pattern matching در زبان اف شارپ بسیار قوی هست به حدی که توی زبان سی شارپ ۸ اومدن شبیه اونو پیاده کردند. به کد زیر توجه کنید:

let printSeason month =
   match month with
   | "December" | "January" | "February" -> printfn "Winter"
   | "March" | "April" -> printfn "Spring"
   | "May" | "June" -> printfn "Summer"
   | "July" | "August" -> printfn "Rainy"
   | "September" | "October" | "November" -> printfn "Autumn"
   | _ -> printfn "Season depends on month!"

printSeason "February"
printSeason "April"
printSeason "November"
printSeason "July"

توضیح کد:

  1. یک تابع به نام printSeason‌ که یک ورودی به نام month‌ میگیره تعریف می کنیم.
  2. میگیم ورودی month‌ رو با شرایط پایین بسنج(match month with)
  3. اگر ورودی December, January, February‌ بود Winter رو چاپ کن( فارسیش این میشه اگر این ماهها بود زمستان رو چاپ کن)
  4. اگر ورودی March, April‌ بود Spring‌ رو چاپ کن.
  5. اگر ورودی May, June‌ بود Summer‌ رو چاپ کن.
  6. اگر ورودی July یا August‌ بود Rainy‌ رو چاپ کن.
  7. اگر ورودی September, October, November‌ بود Autumn‌ رو چاپ کن.
  8. اگر ورودی مطابقت نداشت Season depends on month! رو چاپ کن. درواقع یعنی خطا بده.

خطهای بعدی هم که تابع رو با یک ورودی وارد می کنیم تا کدمون رو تست کنیم. مثلا تابع برای February برامون Winter رو چاپ می کنه.

توضیحات تکمیلی:

  • Pattern matching با کلمات کلیدی match و with مشخص میشن.
  • برای هر شرط یا همون case‌ در دستورات از اپراتور | (پایپ Pipe) استفاده می کنیم. همونطور که تو کد بالا میبینید میتونیم چندین شرط رو باهم بنویسیم مثلا اگر یکی از این شرطها برقرار بود یک کار خاصی رو انجام بده.
  • در واقع علامت _| همون default‌ در دستور switch case بقیه زبانهاست. یعنی اگر شرایط بالا برقرار نبود این رو اجرا کن. و وجودش برای جلوگیری از خطا ضروریه هرچند اگر ننویسید هم کامپایلر ارور نمیده و کدتون اجرا خواهد شد.

نوشته آموزش #F قسمت ۱۱ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی