به پیشرفت جامعه متن باز کمک کنید، تیشرت مجانی بگیرید!

سلام خدمت همه دوستان اوپن سورسی! 😊 چند روزه ک رویدادی (نمیدونم رویداد بهش بگیم درست تره یا جشنواره!) به اسم هکتوبرفست توسط شرکت DigitalOcean شروع شده که تا آخر اکتبر ادامه داره. میخوام توی این پست براتون دربارش توضیح بدم، آخر سر اگه تیشرت گرفتید بگید دمش گرم چه پست خفنی گذاشته بود!! 😁

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

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

پنهان کردن هدرهای پیش فرض مرورگر در پرینت صفحه وب

ممکنه نیاز داشته باشید صفحه وب رو با جاوااسرکیپت پرینت کنید. خود این تسک کار ساده ایه و با یه دستوری ساده مثل window.print() انجام پذیره. اما یه مشکلی توی این پرینت وجود داره و اونم اینه که تنظیمات پیش فرض مرورگرها عنوان صفحه و تاریخ روز رو بالای صفحه ای که میخواید پرینت بگیرید وارد میکنه، مثل عکس زیر:

آشنایی با Symfony

بین تعدا زیادی از تکنولوژی‌های وب که وجود دارن، پی‌اچ‌پی تو طول زمانی تغییرات سریعی رو پشت سر گذاشته و الان به یک زبان بالغ تبدیل شده.

ساخت کلاس Singleton در جاوااسکریپت ES6

ساختن کلاس و استفاده ازش در جاوااسکریپت که به صورت ذاتی یک زبون Object Oriented نیست، همیشه برای توسعه دهنده ها کار چالش برانگیزی بوده. با معرفی شدن استاندارد ES6 در سال ۲۰۱۵، بخش عظیمی از این چالش ها و تمامی ترفندهایی که برای شبیه سازی کلاس ها در جاوااسکریپت استفاده می شد،‌ دیگه کاربردشون رو از دست دادن. درحال حاضر اکثر توسعه دهندگان جاوااسکریپت از استاندارد ES6 استفاده میکنن و دیگه ساختن و استفاده از کلاس کار نسبتا ساده ای شده.

موضوع prefixها در CSS

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

چیدن پست‌های وردپرس براساس تاریخ به صورت نزولی، صعودی همزمان

تو یکی از پروژه‌های اخیر که مربوط به یک سایت رویداد محور بود(کلاس‌های دیجیتال مارکتینگ)، باید رویدادها رو به صورت نزولی و به ترتیب تاریخ مرتب میکردم و در عین حال پست‌هایی که هنوز منقضی نشدن(رویدادهای پیشرو) به ترتیب تاریخ باشن ولی صعودی، یعنی نزدینک‌ترین رویداد اول بیاد. به این شکل: مثلا امروز 9 خرداد هست. ترتیب باید این شکلی میشد:

مدیریت و اجرای یک process به کمک launchd در سیستم عامل macos

معمولا در سیستم‌های شبه یونیکس و تقریبا همه سیستم عامل‌ها برای مدیریت، راه‌اندازی و توقف اجرای یک process، سرویس یا اسکریپت در سیستم عامل از ابزارهای به نام operating system service management استفاده می‌شود.

ساخت ابزار cli با nodejs

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

اتوماتیک گیت بای سکت یا چگونه با دو نیم کردن اتوماتیک از سکته جلوگیری کنیم

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

متدولوژی پوچ ، تیم تاثیرگذار

روش های زیادی ( متدولوژی )‌بوجود آمده اند تا به شما یاد دهند که چطوری یک نرم افزار تولید کنید ولی همه آن ها آنقدر در جزییات به اندازه ی کافی مبهم هستند که از هیچکدام نمی توان استفاده کرد بخاطر همین ساده ترین متدولوژی بهترین متدولوژی است .

دلایل شکست پروژه های نرم افزاری

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

در میان شیب

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

ایجاد یک خزنده ساده با Nodejs برای دانلود تلفظ صحیح کلمات از لانگمن

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

فرار از جهنم Callback با تبدیل Callback به Promise

برای کار با توابع Async در جاوااسکریپت، از کالبک (Callback) استفاده میشه. با اینکه این راه در خیلی از موارد ممکنه مشکل رو حل کنه، زمانی که به انجام چند عمل Async باهم و در ادامه هم میرسیم، استفاده از Callback ما رو درگیر مشکلی به اسم جهنم Callback Callback Hell میکنه. برای حل این مشکل خوبه که بدونیم میشه Callback ها رو تبدیل به Promise کرد.

جدال با پس زمینه‌ی زرد ، یا چطور رنگ پس‌زمینهٔ زرد کروم برای ورودی‌های autocomplete را از بین ببریم

مدت زیادی می‌گذره از زمانی‌که گوگل کروم این قابلیت رو اضافه کرد. منظورم هایلایت کردن ورودی‌هایی هست که کاربر از قابلیت autocomplete مرورگر استفاده می‌کنه.

هماهنگ سازی مخزن Fork شده با مخزن اصلی

هر زمان که بخواین یه مخزن رو توی گیتهاب برای خودتون ذخیره کنین یا بخواین بهش یه Contribution داشته باشید، باید در مرحله اول اون مخزن رو Fork کنین. ولی اگر صاحب مخزن اصلی اونو آپدیت کنه چی؟ چطور باید مخزن Fork شده تون رو باهاش هماهنگ و آپدیت نگه دارین؟ (مخزن = Repository)

متد کاربردی Object.select

همین چند لحظه پیش یکی از دوستانم در توییتر MValipour ایده ای رو باهام درمیون گذاشت مبنی بر اضافه کردن متدی به اسم Object.select که به نظرم خیلی کاربردی و جالب بود و تصمیم گرفتم تا تنور داغه تبدیلش کنم به یه مطلب توی بلاگ :p

Proxy و کاربردهاش در جاوااسکریپت

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

نگه‌داری متغیرها توی پروژه‌های بزرگ در جاواسکریپت

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

گیت Rebase به زبان ساده

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

مینیفای کردن HTML و CSS در جکیل

برای بالا بردن سرعت لود وب سایت ها از تکنیک مینیفای کردن محتوای وب سایت استفاده میشه. مینیفای کردن محتوا به این معنیه که خروجی HTML وب سایت، فایل های CSS و JS ای که در سورس وب سایت قرار دارن رو با حذف فاصله های اضافی (whitespace) و سایر فنون (نمیخوام وارد جزییاتش بشم چون از حوصله این مطلب خارجه :دی) به کمترین حجم ممکنش میرسونن.

تجربه های کاربری (UX) ضروری در اپلیکیشن های موبایل که به ندرت رعایت میشن

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

نگه داشتن فوتر در پایین صفحه مستقل از ارتفاع محتوا (آپدیت شد!)

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

سی اس اس ماژولار برای پروژه های بزرگ

نوشتن سی اس اس خیلی ساده اس. به سادگی تغییر رنگ و سایز فونت متن. تقریبا هرکسی میتونه سی اس اس بنویسه و از اون تقریبا همه، حداقل ۸۰درصد به هرنحوی هست کارشونو باهاش تموم میکنن و راضی هم هستن. اما نوشتن و مدیریت کردن سی اس اس به صورت استاندارد و درست و به دور از درد و خونریزی!! یکی از سخت ترین تسک های توسعه فرانت انده.

رفع مشکل نام های طولانی در BEM

BEM یکی از استانداردهای نام گذاری کلاس ها در سی اس اس هست. ممکنه براتون سوال باشه که مگه سی اس اس هم استاندارد نام گذاری نیاز داره؟ ۴تا دونه کلاس که ارزش این حرفا رو نداره! :دی اما باید بگم سی اس اس خیلی قلق داره و استفاده صحیح ازش در پروژه های نسبتا بزرگ بسیار سخته.