سیب فارسی

شب و روزنوشته های من | داستان سیبی که هر روز به زمین می خورد!

آموزش Angular.js – قسمت اول

27 اکتبر 15

قصد دارم در سیب فارسی چند پست مقدمه ای بر فریم ورک جاوا اسکریپتی و محبوب angular.js را به زبان فارسی نوشته و ارسال کنم. همانطور که گفتم آنچه نوشته خواهد شد تنها مقدمه ای بر angular.js خواهد بود و تصمیم فعلی من اینه که بین 3 تا 5 پست مطالبم و ارائه کنم با توجه به این موضوع قطعا مطالب بیشتر موضاعات essentials این framework javascript خواهد بود.

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

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

آموزش Angular.js – قسمت اول

angular یک فریم ورک جاوا اسکریپت متن یاز جاوا اسکریپتی است. که توسط گوگل توسعه و نگهداری شده است. این فریم ورک در دسته چارچوب های SPA-single page applications یا چارچوب های مناسب برای توسعه اپلیکیشن های تک صفحه ای می باشد. این فریم ورک جاوا اسکریپتی بسیار مناسب برای چارچوب های تست و توسعه منطبق بر  (model–view–controller (MVC و (model–view–viewmodel (MVVM می باشد.

ویژگی های AngularJS در این بخش feature های مختلف AngularJS را معرفی خواهم کرد. یکی از مواردی که هم مثال هایی در آموزش می نویسید و هم نمونه کارهای دیگر خاصه با این زبان آغاز می کنید مهم هست که مد نظر قرار دهید from scratch یا به عبارت دیگر از ابتدا و صفر شروع نکید و از نمونه کد های موجود استفاده کنید.

مورادی که در این بخش معرفی خواهم کرد  شامل Directives, Filters و Data Binding می شود ضمن اینکه Views, Controllers و Scope را نیز مورد بررسی قرار خواهیم داد.

ابتدا بگم که وقتی می گیم AngularJS زبانی برای SPA ها است یعنی چه. به عبارت دیگر اصلا SPA چیست. منظور از SPA این است که تمام سایت یا هر پروژه وب ما بروی یک صفحه قرار م یگیرد و ما چند صفحه نخواهیم داشت و محتوای View های مختلف روی یک همان یک صفحه ظاهر می شوند.

این موضوع مزایای بسیاری دارد و در pattern های مخلف به سرعت بالاتر در لود و موثر بودن زیر ساخت و موارد دیگر اشاره شده است. نگهداشت DOM و کنترل صفحات مختلف از جمله چلنج های SPA ها می باشد.

از سایت http://angularjs.org می توانید کتابخانه جاوااسکریپتی AngularJS رادانلود کنید. خوب در این قسمت import کردن کتابخانه دانلود شده به اولین برنامه تستی مان را نشان می دهیم:

<!DOCTYPE html>
<html lang="en" ng-app="samples">
<head>
 <title>AngularJS Morka example</title>
 <script src="angular.min.js"></script>
</head>
<body>
</body>

directives: directive در واقع مجموعه ای از میانبرها و روش هاست که به html برنامه کمکمم می کند، به عبارت دیگر موجب سهولت و ساده تر شدن Html کد های برنامه می شود.

<!DOCTYPE html>
<html lang="en" ng-app="samples">
<head>
 <title>AngularJS Morka example</title>
 <script src="angular.min.js"></script>
</head>

<body>

<div class="container">



Name: <input type="text" ng-model="firstName">



You wrote: {{ firstName }}


</div>

</body>

هر جایی که ما ng- دیدیم یعنی در آنجایک directive داریم. ضمن اینکه می توان دایرکتیو custom نیز ایجاد کرد.
در کد بالا ng-model=”firstName” مدل مربوط به کامپوننت را معرفی می کند به عبارتی آی دی این کامپوننت مشخص می شود واین {{ firstName }} عبارت کار data binding را انجام می دهد و هر آنچه در inputtext تایپ شو در پاراگراف تعریف شده نمایش داده می شود.
توجه کنید که ng-app می بایست حتما اضافه شود و scope برنامه شما را مشخص می کند در آینده خواهیم دید که از ng-app می توان روی div ها هم استفاده نمود و حتی چند scope را با چند ng-app مختلف در یک صفحه ایجاد نمود.
پس تا اینجای کار روی کدینگ سه قسمت در angular معرفی شد که شامل
Include the ng-app
Include the ng-model
Bind to that model
می شود.
در این قسمت ضمن معرفی AngularJS کتابخانه آن را نیز معرفی کردیم و با معرفی Directives اولین پروژه خود را بالا اوردیم.

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

آیا فعالان حوزه نرم افزار مغرور هستند؟

26 اکتبر 15

سایت محمدرضا شعبانعلی یکی از سایت هایی است که همیشه دنبال می کنم.

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

موضو مطلب امروز من البته قسمت دیگری از مطلب سایت شعبانعلی است.

در قسمتی از این مطلب آمده است:

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

اگر بخواهم به تجربیات شخصی تکیه کنم، با مرور خاطراتم، فقط یک گروه دیگر را می‌شناسم که در “شتابزدگی برای موفقیت” و “همه چیزدانی” از Developerها جلوتر باشند و آن MBA خوانده‌ها هستند (که خودم هم با کمال شرمندگی و اظهار پشیمانی و تقاضای عفو از شما، جزو آنها هستم).

من MBA رو نمی دونم اما به نظر من کارمندان بانک هم به یک غرور بی دلیل گرفتار شده اند!!

چند ویژگی به قشر آی تی نسبت داده شده است، شتابزدگی برای موفقیت، همه چیز دانی، غرور!

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

همه چیز دانی، این صفت را من هم در بچه های آی تی دیده ام منتهی اساسا معتقدم این صفت در حال حاضر سندرم فعال در اکثریت جامعه ماست و جامعه آی تی که نسل جوان آن به نظر نسل پر مطالعه و بروزی می آید هم از اس قاعده مستثنی نیست!

غرور!! درست است غرور کاذبی هم وجود دارد که عموما من آن را حس نکرده ام چون احتمالا  این غرور برای بچه های غیر آی تی بروز می کند که بنابراین در بین خود بچه های آی تی کمتر است.

گرچه من عامل ای رو در این صفات موثر می دانم به دلایل بسیاری من جمله سهل الوصل به نظر آمدن ورود به این حوزه کاری و درامد نسبتا خوبی که در این حوزه وجود دارد بسیاری از افراد غیر متخصص فکر می کنند که اگر با یک cms سیستم مدیریت محتوا توانستند یک وبسایت بالا بیاورند می توانند اپلیکیشن ناو بری هم بنویسند!!

کمااینکه در 3 سال گذشته من با یک فارغ التحصیل معماری، یک ارتوپد و یک کاردان علوم آزمایشگاهی در تیمی کار کرده ام!!

ورود همچین افرادی در ایجاد همچین دیدی روی بچه های آی تی به نظر شخص بنده موثر بوده است.

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

آیا روزی ربات ها، انسان ها را خواهند خورد؟

23 اکتبر 15

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

جاوا

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

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

جواب من این است: بله حتما! از این پس تخصص برنامه نویسی روی برخی موضاعات محدود تر خواهد شد بدین ترتیب که حوزه ای که هنوز native به این کار خواهد پرداخت برنامه نویسی سیستمی خواهد بود که این هم بیشتر در حوزه هوش خواهد بود، بخش دیگر که شاید 5-10 سال آینده در برنامه نویسی به قدرت ادامه خواهد داشت احتمالا Smart tools و Smart Gadget ها خواهد بود.

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

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

دوباره سلام دنیا!

16 اکتبر 15

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

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

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

سیب فارسی

بگذریم بذارید تم اینجا کم کم هم برای شما و هم من شکل بگیره!

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

Lets go!! رفقا!!