احسان رضایی

یک توسعه دهنده، شاید هم نه.

تماس با من
me@dehohohohovelopithahahaha.ir

دست نوشته ها

دانشگاه یا موز!

(مطلب ثابت)

در ادامه مطلب " نقدی در مورد برخی اساتید "

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

دانشگاه ها زیاد شدن...، آزاد، غیر انتفاعی، پیام نور و...، ظرفیت ها/صندلی ها افزایش پیدا کرد، قبولی در دانشگاه آسون شد و حتی شیوه ی پذیرش دانشگاه تغییر کرد مثل پذیرش بدون کنکور با ضمانت قبولی. بعضی ها رو که هیچ جایی راهشون نمیدادن شدن استاد! و بچه های مردمُ برای خانه نشینی تعلیم دادن.

ادامه...

‏احساس تعلق خاطر به محل کار

روز اولی که اومدم شرکت داشتن نیرو جذب می‌کردن. بعد از مدتی دیدم خیلی هوام‌ُ دارن و همه جور امکاناتی برام فراهم می‌کنن. می‌گفتم اینا چقدر دلسوز کارمنداشون هستن. تا اینکه موضوع تعدیل نیرو داغ شد و عده‌ای رو اخراج کردن.

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

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

ادامه...

داستان اول شخص بودن یک توسعه دهنده

یه دوستی میگفت در همین لحظه که داری به موضوعی فکر میکنی به طور میانگین حدود 16 نفر دیگه هم مثل تو دارن هم زمان به این موضوع فکر میکنن!

به نظرم توی برنامه نویسی اول شخص بودن یعنی ادعا. اینکه بگیم اولین نفری بودیم که این کارُ انجام دادیم یا مثلا تنها کسی بودم که انجامش دادم و...

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

7 تصور غلط کارفرما در مورد پروژه های نرم افزاری

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

1) پروژه دقیقا بر اساس زمان بندی که توسعه دهنده داده تموم میشه.

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

ادامه...

تجربه سفر با قطار های بن ریل(راه آهن شرقی بنیاد) و فدک

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

اما در قطار درجه 1 بن ریل برای دریافت آب معدنی دوم در یک مسافرت 14 ساعته هزینه پرداخت کردم!

سالن قطار قدیمی بود یا شاید به خاطر تجربه شیرین مسیر رفت که با فدک داشتم اینطور به نظر میرسید.

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

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

کنترل دمای هوا و سیستم صوتی تصویری در اختیار ما نبود یعنی امکان تنظیم دما و انتخاب فیلم و محلی برای اتصال هندزفری نداشت!

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

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

راهرو داخل واگن محل بازی و سر و صدای بچه ها شده بود و مهماندار هیچ تذکری بهشون نمیداد. خود من 4 بار بهشون تذکر دادم اما بی فایده بود.

شعار بن ریل روی وسایل اتاق به چشم میخورد. "سفر به سبک بن ریل" اول به این فکر میکردم چه مفهومی داره و چقدر بی معنیه! اما در آخرخیلی خوب متوجه شدم... .

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

نقدی در مورد برخی اساتید

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

دونستن مباحث پایه خوبه اما حدی داره.

تفاوت موسسات آموزشی خصوصی با دانشگاه ها در همینه، اونا دارن افراد رو برای بازار کار آموزش میدن اما دانشگاه برای خانه نشینی...

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

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

و در انتها، با توجه به این موارد، گاهی ایمان میارم به این جمله:

 اونی که کارُ بلده انجامش میده و اونی که بلد نیست تدریسش میکنه...

آخرین مطالب وبلاگ

اجرای collection های postman

برای اجرای collection ها در نوار کناری سمت چپ روی فلش مجموعه ی مورد نظرتون کلیک و سپس دکمه ی run رو بزنید. میتونید تمام collection ها یا فقط یک پوشه رو اجرا کنید. اگر در زمان اجرا با خطایی برخورد کردین میتونید داخل postman console که قبلا در موردش توضیح دادم جزئیات کاملش رو ببینید.

run collection

collection ها در postman

collection چیزی مثل folder هست که به منظور دسته بندی درخواست های مشابه از یک نوع یا یک گروه استفاده میشه. مستندات خود postman توضیحات خوبی در مورد ایجاد و مدیریت collection داده که در اینجا سعی میکنم نمونه ای رو مثال بزنم.

در قسمت سمت چپ نرم افزار و با کلیک روی دکمه new folder میتونید یک یا چند collection ایجاد کنید. زمانی که درخواست جدیدی رو ایجاد میکنید با کلیک روی گزینه ی save میشه اون رو داخل folder های تعریف شده ذخیره کرد.

create collection

امکانش وجود داره به این توافق برسیم که یک ساختار ساده گزینه ی خوبیه پس میشه برای هر feature یک collection ساخت. داخل application ما دوره های آموزشی وجود داره به اضافه اینکه کاربران میتونن داخل دوره ها ثبت نام و بعد از اون دوره های خودشون رو داخل پنل کاربریشون مشاهده کنن. میتونیم برای این feature یک collection بسازیم.

کتابخانه های کمکی postman

اعتبار سنجی پاسخ ها و بررسی خروجی JSON که اغلب شامل attribute های زیادی هست به مرور خسته کننده میشه. postman شامل کتابخانه های مفیدی هست که به شما برای test کمک میکنه. به ویژه lodash و tv4 JSON schema validator. میتونید لیست کامل این کتابخانه ها رو اینجا ببینید. بیایید دوباره عملیات test صفحه ی login رو که در پست های قبلی انجام دادیمُ ادامه بدیم.

از اونجایی که login ما فقط یک token برمیگردونه میتونیم ست بودن مقدار token رو بررسی کنیم.

let jsonData = JSON.parse(responseBody);
let ok = responseCode.code === 200;
tests["Successful request"] = ok;
tests["Token is set"] = _.has(jsonData, "token");

if(ok) {
    pm.environment.set("token", jsonData.token);
}
ادامه...

استفاده از console در postman

گاهی اوقات نیاز دارین اطلاعات درخواست و پاسختون رو با دقت بیشتری بررسی کنید. ابزار console این اطلاعات ارسال شده و دریافتی شما رو با جزئیات بیشتری ثبت میکنه. برای باز کردن console از کلید ترکیبی cmd+alt+C استفاده کنید یا اینکه به آدرس View > Show Postman Console برید.

عملیات test در postman

هنگام توسعه ی application نیاز داریم از صحت نتایج API اطمینان حاصل کنیم. با استفاده از testing میتونیم انواع مختلفی از اعتبار سنجی ها رو برای نتایج ایجاد کنیم. به عنوان مثال برای درخواست login در زبانه tests کد زیرُ بنویسید و روی دکمه Send کلیک کنید.

 

tests["Successful request"] = responseCode.code === 200;

 

postman tests

ادامه...

تعریف متغییر های محیطی در postman

Environment Variables ها امکان خوبی هستن که انجام عملیات copy/paste رو کاهش میدن و تمام متغییر های ما رو در یک جا نگه میدارن. environment یک محیط اجراست. ما میتونیم محیط های متفاوتی داشته باشیم مانند، محیط ارزیابی، عملیاتی/استقرار و... 

postman انواع مختلفی از متغییر ها رو در اختیار ما میذاره(Global، Environment، Local و Data). متغییر های Global  که اینجا مثالی در موردش خواهیم زد همه جا قابل استفاده هستند. شما میتونید در مورد متغییر ها اینجا بیشتر بخونید.

به عنوان مثال، ما به سه متغییر نیاز داریم.

domain: یک subdomain فعال که در حال حاضر ازش استفاده میکنیم مثل company1، company2 یا هر چیز دیگه ای.

url: آدرس اپلیکیشن مون.

token: توکنی که برای احراز هویت ازش استفاده میکنیم.

ادامه...