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

۳ مطلب با کلمه‌ی کلیدی «برنامه نویس» ثبت شده است

یه کتابخانه کاتلین پرکاربرد

یه کتابخانه کاتلین ( Kotlin lib ) میخوام امروز بهتون معرفی کنم . با نام KdroidExt که میتونید از github توضیحاتش رو ببینید.
کتابخانه همه کاره ای که میتونید باهاش از کد زدن های اضافه ( boilerplate code ) جلوگیری کنید . توضیحاتش تو صفحه اش هست و میشه گفت تقریبا تو هر پروژه ای به یکی از این متدها احتیاج پیدا خواهید کرد . 

شاد باشید
۰ نظر موافقین ۱ مخالفین ۰
مرتضی درزی

برنامه نویسی آموزش پذیر ( Learnable Programming)

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

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

آقای ویکتور تو سایتشون خیلی از مفاهیم ویژوالی رو برای آموزش یه زبان نشون دادن و میتونید به واقع نتیجه تفاوت برنامه نویسی ویژوال و برنامه نویسی صرفا کد رو ببنید . حتی تو این مطلبشون خیلی زیبا تونستن یک مفهوم ( Abstraction ) رو بصورت پیاده سازی شده در بیارن .. من که به شخصه واقعا مجذوب این سایت و کارهای ایشون شدم ولی ذهنم درگیر یه موضوع بزرگتره ... چرا نتونیم از همین ویژوال و امکاناتش در برنامه نویسی ( خود برنامه نویسی نه آموزش یه زبان برنامه نویسی ) استفاده کنیم . یکی از کارهایی که میشه گفت خواسته یا ناخواسته در همین راستا بوده ویژگی جدید Navigation Architecture Component در کامپوننت اندروید که بصورت کاملا ویژوال امکان navigation بین صفحات مختلف یه اپ رو پیاده سازی و طراحی میکنه ... این همون نتیجه کاریه که باید زودتر ببنیم . 


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

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

شما هم اگه اطلاعاتی دارید که میتونه راهنماییم کنه خوشحال میشم بفرمائید .

 

۰ نظر موافقین ۱ مخالفین ۰
مرتضی درزی

کافه کد

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

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

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

البته مثل هر جای دیگه دورهمی های مجازی شاید در این موارد زیاد باشه و حتی همین وبلاگ ها میتونن ارتباط خوبی بین چنین آدم هایی برقرار کنه ولی اکثرا دلیل وجود چنین محیط هایی " آموزش " نه " به اشتراک گذاری تجربیات "

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

 

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


۴ نظر موافقین ۱ مخالفین ۰
مرتضی درزی