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

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

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

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

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

ما در این فصل به صورت کوتاه در مورد این موضوع صحبت می کنیم، که شمایی که به عنوان توسعه دهنده نرم افزار هستید چطور می توانید با تسترها همراه شوید؟

تسترها دشمن شما نیستند!!

تسترها دشمن شما نیستند!!

چیزی که مهم می دانم تا برای شروع بگویم، این است که بگذارید راز کوچکی را با شما در میان بگذارم…

تسترها دشمن شما نیستند.

می دانم ممکن است صحبت هایم مانند یک نصیحت به نظر برسد. اما من چیزهایی را می دانم که می تواند این مسیر حرکت را درست کند.

من اینجا هستم تا شما بتوانید، چیزهای را بسازید، ویژگی هایی را ایجاد کنید، و کمکتان کنم تا با تسترها کنار بیایید.

اما آیا واقعا تسترها کدهای شما را می شکنند؟؟

آیا مقصر تسترهایی هستند که سعی دارند، باگ های کد شما را بیابند؟

این طور نیست.

این تقصیر شماست و هیچ کس دیگر مقصر نیست.

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

ادامه مطلب


طرز فکر یک برنامه نویس موفق قسمت دوم

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

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

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

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

چگونه اهدافمان را تعیین کنیم ؟

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

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

شکستن اهداف

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

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

این واقعاً به شما بستگی دارد که هدف بزرگ خودتان را چطور تعریف کنید و در ۵ یا ۱۰ سال آینده چه جایگاهی را برای خود متصور شوید. حالا بروید و کمی زمان بگذارید تا بتوانید هدف های بزرگتان را مشخص کنید. این واقعاً مهم است.


۱۰ مهارت اجتماعی ساده که بسیاری از برنامه نویسان آن را فراموش کرده اند.

10 مهارت اجتماعی ساده که بسیاری از برنامه نویسان آن را فراموش کرده اند.

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

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

الویت اصلی در کارتان، حل مسائلی است که آن را در حالی انجام می دهید که همکارتان هم به عنوان بخشی از تیم در حال انجام آن است.

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

در نهایت وقتی که آماده کدنویسی می شوید، باید در درجه ی اول دقت کنید که این کدها برای انسان قابل فهم باشد، این کار جزء لذت بخش ترین فعالیت یک توسعه دهنده ی نرم افزار است.

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

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

ما بیشتر زمانمان را با همکارانمان می گذارنیم، شاید بعضی مواقع این زمان، بیشتر از زمانی باشد که برای خانواده مان صرف می کنیم.

حالا که این مطلب بیان شد، شایسته است که متوجه اهمیت داشتن روابط خوب با دیگران، به خصوص همکاران شوید و تلاش کنید تا این روابط را بهتر و مستحکم تر کنید.

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

ادامه مطلب


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

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

یک تهدید دائمی در توسعه ی نرم افزار، انجام ندادن یا ندانستن نحوه ی ایمن سازی نرم افزار است.

وضعیت فعلی تکنولوژی در محیطی است که برنامه های کاربردی دائما در حال تاخت و تاز با هم هستند.

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

برخی ممکن است احساس کنند، که یادگیری نحوه کدنویسی خوب، به اندازه کافی سخت هست و هیچ گاه زمانی برای یادگیری امنیت به وجود نمی آید. اما در واقعیت امر،کد نویسی خوب، کدنویسی امن، است. .

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

در ذهنتان بنویسید: کد خوب یعنی کد امن.

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

اجازه دهید پنج مفهوم امنیتی که هر توسعه دهنده نرم افزاری باید بداند را برایتان بگویم:

ادامه مطلب


مسیـر یادگیـری Net Framework.

مسیـر یادگیـری Net Framework.

مهم نیست که برنامه نویس وب باشید یا دسکتاپ، هر برنامه نویس دات نت باید  با نحوه کار دات نت و امکانات آن آشنایی داشته باشد.

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

 

مسیر تبدیل شدن به یک برنامه نویس حرفه ای سی شارپ

به عقیده من برای یادگیری برنامه نویسی باید دو چیز را فراموش نکنیم. ۱٫ قدرت زمان ۲٫ تمرکز روی یک موضوع خاص و شاخه شاخه نشدن

قدرت زمان

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

تمرکز

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


آموزش قدم به قدم AngularJS (قسمت دوم)

در درس قبلی سری آموزش قدم به قدم AngularJS یک نمونه ساده Hello World را دیدیم و اساس کار Angular را یاد گرفتیم. در این درس چگونگی کار با event ها و validation ها در AngularJS را خواهید دید. ما ۵ قدم را انجام دادیم، پس بیایید با قدم ششم شروع کنیم.

ادامه مطلب


آموزش قدم به قدم AngularJS (قسمت اول)

AngularJS (إنگیولر‌جِی‌اس) یکی از مشهورترین و بهترین فریم‌ورک‌های جاوااسکریپت است. ویژگی قدرمند Data Binding دوطرفه در AngularJS کار کردن با اشیای JavaScript و HTML را بسیار ساده کرده است. دلیل اصلی پیدایش AngularJS بایندیگ و بایندینگ و بایندیگ بوده است. AngularJS یک بایندیگ فریم‌ورک است که رابط کاربری HTML را به اشیای JavaScript بایند می‌کند. بایندینگ در انگولار جی اس با انجام این کار، حجم زیادی از کدهایی که برای ایجاد ارتباط بین HTML و اشیای JavaScript نوشته می‌شد کاسته شده است. از آنجا که از AngularJS از الگوهای طراحی MVC و MVVM، به طور همزمان پشتیبانی می‌کند، آن را به عنوان MVW(Model-View-Whatever) و یا “مدل، ویو و هر چیز دیگری” می‌شناسند. Mv*

قدم اول : درست کردن یک صفحه HTML ساده

می‌خواهیم با هم یک پروژه ساده که فقط شامل HTML ،CSS و JavaScript است را درست کنیم، برای اینکار ابتدا یک پوشه در یک مسیر دلخواه درست کنید، سپس Visual Studio را باز کرده و روی File->Open->Website مانند تصویر زیر کلیک کنید. وقتی که شما یک پوشه را به عنوان Website باز می‌کنید، Visual Studio فایل‌های اضافی مانند web.config و global.asax و … را به پروژه اضافه نمی‌کند. باز کردن وب سایت و مسیر پوشه‌ای که درست کرده بودید را مانند شکل زیر به آن بدهید. 2 کار شما تمام شد، شما توانستید یک پروژه بسیار ساده درست کنید، که هیچ چیزی در آن وجود ندارد. این فقط یک پروژه خالی است که فایل های مخصوص مایکروسافت هم در آن دیده نمی‌شود. 3 بیایید یک صفحه HTML ساده درست کنیم و نام آن را HelloWorld.html بگذاریم. 3 NewHTML در این صفحه HTML یک TextBox درست می‌کنیم و اسم آن را txtHello می‌گذاریم، سپس این TextBox را به تابع جاوا اسکریپتی به نام Hello بایند خواهیم کرد. و حالا می‌خواهیم از AngularJS برای بایند کردن این دو موجودیت استفاده کنیم.

قدم دوم : اضافه کردن AngularJS به پروژه

حالا که رابط کاربری HTML و کلاس های JavaScrip را در جای خود قرار دادیم، بیایید اول AngularJS را دانلود کنیم. برای این کار روی پروژه راست کلیک کرده و گزینه Manage NuGet Packages را مانند تصویر انتخاب کنید. MangeNuGet Packages کلمه AngularJS را در کادر جستجو وارد کنید، سپس AngularJS Core را انخاب کرده و روی دکمه Install کلیک کنید. در لیست ظاهر شده چندین AngularJS وجود دارد که Extension های AngularJS هستند. که به تدریج در پست های بعدی راجع به آنها صحبت خواهیم کرد. مهم ترین آن‌ها Angular core است، روی آن کلیک کنید تا به پروژه شما اضافه گردد. NuGet پس از نصب، شما می‌توانید فایل های Angular را در پوشه Scripts ببینید. AngularJS Scripts; حالا با استفاده از تگ script مانند تصویر زیر به فایل Angular (به خطوط Bold شده نگاه کنید) Reference دهید.

قدم سوم : اضافه کردن عبارت های ng-controller و ng-model

حالا برای اتصال کلاس HelloWorld با کادر متنی HTML به دو چیز نیاز دارید : اول، درست کردن یک نمونه از کلاس HelloWorld دوم، تنظیم خاصیت شی HelloWorld به TextBox برای این کار ما به ng-controller و ng-model نیاز داریم. به ng-controller و ng-model در إنگیولر‌جِی‌اس directive گفته می‌شود. به یاد داشته باشید که إنگیولر‌جِی‌اس یک زبان برنامه‌نویسی اعلانی است. اعلانی یعنی اینکه شما فقط directive ها را اضافه می‌کنید، و بدون اینکه نیاز باشد چگونگی انجام آن کار را به آن بگویید کاری که می‌خواهید را برای شما انجام می‌دهد. دایرکتیو ng-controller یک شی از کنترولر HelloWorld درست کرده و آن را به تگ div بایند می‌کند، و ng-model مقدار فیلد input را به پراپرتی txtHello بایند می‌کند. همانطور که در تصویر زیر نشان داده شده، برای نمایش پراپرتی txtHello روی صفحه نمایش، به {{عبارت مورد نظر}} نیاز داریم. بنابراین وقتی چیزی را در TextBox تایپ می‌کنیم، در تگ div نمایش داده خواهد شد.

قدم چهارم : ng-app و مفهوم scope

حالا اگر دایرکتیو ng-controller نمونه‌ها(instance) را درست می‌‌کند، اگر مانند کد پایین، چندین دایرکتیو ng-controller در صفحه HTML خود داشته باشید چه اتفاقی خواهد افتاد. یک instace درست می‌کند یا چند instance ؟ درباره این موضوع فکر کنید… بدیهی است که شما به عنوان یک برنامه‌نویس، دوست دارید instance های مختلف از HelloWorld داشته باشید و بتوانید به هر دو div موجود در صفحه HTML بایند کنید. این دقیقاً همان کاری است که AngularJS برای ما انجام می‌دهد. اما حالا که دو instance متفاوت در یک صفحه HTML داریم، محدوده استفاده (یا scope ) این دو instance چگونه تعیین می‌شود. آیا در تمام صفحه HTML قابل استفاده است ؟ محدوده استفاده (یا scope ) این دو instance با تگ <div> آغاز شده و با تگ </div> به پایان می‌رسد.AngularJS وقتی به دایرکتیو ng-controller برخورد می‌کند، این instance ها را به صورت خودکار می‌سازد. حالا اگر بخواهیم این instance ها با هم ارتباط داشته باشند و داده هایشان را با هم به اشتراک بگذارند باید چه کار کنیم ؟ ما چیزی به نام ng-app داریم که این کار را برای ما انجام می‌دهد. ng-app یک شی درست می‌کند که از طریق آن تمام controller ها را کنترل می‌کند و به آن‌ها کمک می‌کند تا بتوانند داده‌هایشان را با هم به اشتراک بگذارند.

قدم پنجم راه اندازی پروژه و دیدن نتایج

خوب، حالا که همه تنظیمات را انجام دادیم، برای شروع کار پروژه Angular به مقداری کد احتیاج داریم. ما می‌خواهیم َAngular اشیا controller و ng-app را بسازد و بایندینگ را برای ما انجام دهد. بنابراین به کد هایی که در پایین می‌بینید احتیاج داریم. اول یک instance از app می‌سازیم، سپس یک شی controller به app اضافه می‌کنیم. همین بود، کلید Ctrl+F5 را فشار دهید و از بایندیگ خودکار لذت ببرید، حالا وقتی چیزی را در TextBox وارد می‌کنید، عبارت پایین به صورت خودکار Update می‌شود. Completed کد نهایی به صورت کامل موضوع بعدی چیست؟ در درس بعدی در مورد event ها و validation ها در Angular صحبت خواهیم کرد.

طرز فکر یک برنامه نویس موفق

برنامه نویس خوب

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

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

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

چطور مانند یک کاسب فکر کنیم؟

حالا به حرفه خود به عنوان یک کسب و کار فکر کنید، آیا واقعاً کسب و کار خوبی دارید. شما باید به این فکر کنید که در این حالت باید چطور فکر کنید تا کسب و کار موفقی داشته باشید.

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

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

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

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

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