بایگانی نویسنده: علی بهزادیان نژاد

درباره علی بهزادیان نژاد

مشاور در زمینه توسعه محصول، نویسنده، مترجم، توسعه‌دهنده و مدرس برنامه‌نویسی اندروید

شرکت شما یک محصول است

شرکت شما یک محصول است

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

ادامه مطلب

دیوانگی در کار لازم نیست

این دیوانگی در کار است

تا به حال چند  بار شنیده‌اید که «این دیوانگی در کار است»؟ حتا شاید خودت هم این را گفته باشی. برای خیلی‌ها «این دیوانگی است» کاملا عادی شده است. اما چرا این قدر دیوانگی؟

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

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

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

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

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

ادامه مطلب

آموزش برنامه‌نویسی کاتلین: انواع داده در کاتلین

انواع داده ساده

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

ادامه مطلب

شرکت خانواده نیست

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

ادامه مطلب

۸-قانون «بوی اسکات»

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

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

ادامه مطلب

۶- قبل از بازنویسی کد

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

ادامه مطلب

آموزش جاوا، فصل یازدهم: ساختار کلاس ها در جاوا

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

  1. هر چیزی یک شی است.
  2. یک برنامه مجموعه‌ای از اشیا است که با استفاده پیام‌رسانی به یکدیگر می‌گویند که چه کار باید بکنند.
  3. هر شیء‌ای دارای حافظه‌ای است که از سایر اشیا ساخته شده است.
  4. هر شیء‌ای یک «نوع» دارد.
  5. تمام اشیای همنوع می‌توانند پیام‌های یکسانی دریافت کنند.

ادامه مطلب

۵- زیبایی در سادگی است

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

«زیبایی متن و هماهنگی و ظرافت و جذابیت و موزونی بسته به سادگی است.»

این گفته همه آن چیزی که ما به عنوان توسعه دهنده نرم‌افزار در آرزوی آن هستیم را در یک جمله بیان می‌کند.

چیزهایی هستند که ما تلاش می‌کنیم در کد خود داشته باشیم:

  • خوانا بودن
  • قابل نگهداری بودن
  • سرعت در توسعه
  • زیبایی کیفی

ادامه مطلب

فیلم‌های آموزشی اندروید

سلام به همراهان همیشگی اسمارت‌لب

قصد دارم فیلم‌های آموزشی جاوا، کاتلین و اندروید تولید کنم. سرفصل‌ها و مطالبی که قرار است در این آموزش‌ها بیاید را مشخص کرده‌ام و به زودی می‌خواهم کار را آغاز کنم. در این زمینه به کمک شما نیاز دارم.

اگر موضوعی مد نظر دارید برای آموزش زیر همین مطلب کامنت بگذارید و اگر با نرم‌افزارهای ویرایش فیلم مانند corel videostudio pro کار کرده‌اید و تمایل دارید در این موضوع با من همکاری کنید لطفا یک ایمیل به info در اسمارت لب بفرستید و از تجربه‌هایتان برایم بنویسید. لطفا در ایمیل دستمزد مورد انتظار و نیز میزان ساعات همکاری را هم بنویسید.

متشکرم

۴- استانداردهای کدنویسی را به صورت خودکار اعمال کن

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

ادامه مطلب