Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تکنولوژی Xamarin یکی از تکنولوژی‌های توسعه برنامه‌های موبایل cross-platform است. سایت «تکنولوژی رادار» که توسط «مارتین فاولر» مدیریت می‌شود و به بررسی تکنولوژی‌ها می‌پردازد، از سال ۲۰۱۵ این تکنولوژی را وارد حلقه Trial کرده است. ورود این تکنولوژی به حلقه Trial به این معنی است که به نظر متخصصان شرکت Thought Works، «این تکنولوژی ارزش دنبال کردن دارد و برای استفاده در محصولات شرکت‌های بزرگی که حاضرند روی تکنولوژی‌های جدید سرمایه‌گذای کنند مناسب است». تا قبل از سال ۲۰۱۵ این تکنولوژی در حلقه Assess قرار داشت که که به این معنی بود: « تکنولوژی جذابی است ولی هنوز شرکت‌ها باید آن را بررسی کنند».
با آماده شدن این تکنولوژی برای توسعه برنامه‌های موبایل و کامپوننت‌هایی که برای آن نوشته شده‌است به نظر می‌رسد نسل جدیدی از برنامه نویسی موبایل شکل گیرد.

https://www.thoughtworks.com/radar/tools/xamarin

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
استایل برنامه‌نویسی JSFuck یک نوع خاص برنامه‌نویسی رمزگونه و آموزشی در JavaScript است. در این نوع برنامه نویسی فقط و فقط از ۶ کاراکتر‌ «()+[]!» استفاده می‌شود و تمام المان‌های مورد نیاز برنامه نویسی با استفاده فوت و فن‌ها و trick های JavaScript معادل‌سازی شده‌اند. برای مثال برای معادل عبارت false، ![] و برای true از !![] استفاده می‌شود. اینها trick هایی در زبان JavaScript هستند که معمولا توصیه می‌شود از آن دوری شود، ولی در این سبک همین تکنیک‌ها پایه و اساس هستند. کشف راز هر کدام از این معادل‌ها تفریح خوبی برای برنامه‌نویسان JavaScript است. چند معادل‌سازی جالب دیگر این روش عبارتند از:
1. false => ![]
2. true => !![]
3. undefined => [][[]]
4. NaN => +[![]]
5. 0 => +[]
6. 1 => +!+[]
7. 2 => !+[]+!+[]
به این ترتیب هر کد JavaScript را می‌توان به سبک JSFuck هم نوشت! در سایت زیر ضمن معرفی این استایل برنامه‌نویسی، ابزاری برای encode کردن کد JavaScript به این سبک نیز وجود دارد.

http://www.jsfuck.com/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تجربه کاربری یا UX یکی از مفاهیمی است که تاثیر زیادی در محبوب شدن یک محصول دارد. مفهوم DX یا Developer Experience نیز مفهوم جدیدی است که تجربه یک برنامه‌نویس هنگام استفاده از یک پلتفرم یا فریم‌ورک را بررسی می‌کند. چرا یک پلتفرم یا فریم‌ورک محبوب می‌شود و دیگری نه؟ این سوالی‌ است که عوامل زیادی در پاسخ دادن به آن موثر هستند. اینکه یک برنامه نویس هنگام کار با آن پلتفرم چه تجربه‌ای احساس می‌کند یکی از عوامل مهم موفقیت یک پلتفرم است. در مقاله زیر مفهوم جدیدی به نام Dotability‌ معرفی شده که می‌توان به وسیله آن کتابخانه‌ها و فریم‌ورک‌های مختلف را از لحاظ DX بررسی کرد.

http://mehrandvd.me/2016/05/31/developer-experience-dotability/
http://mehrandvd.me/2016/05/31/developer-experience-dotability/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرم‌افزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فایل‌های گرافیکی دو دسته اند vector و raster:
در فایل‌های Vector برای نمایش یک عکس از خطوط و منحنی استفاده شده است. این فایل‌های گرافیکی توسط نرم افزارهای کامپیوتری ساخته می‌شوند که هر خط و منحنی مشخصات خود را دارد. به همین دلیل با زوم روی این عکس‌ها از شفافیت آن کاسته نمی‌شود.
در فایل‌های Raster (Bitmap image)، این پیکسل‌ها هستند که یک عکس را تشکیل می‌دهند. با زیاد کردن زوم روی این عکس‌ها، از کیفیت آنها کاسته می‌شود اما در کل عکس‌های طبیعی‌تری را می‌توانند نمایش دهند، از این جهت که با زیاد کردن تعداد پیکسل‌ها با رنگ‌های زیاد می‌توان عکس را به واقعیت نزدیک کرد.
دانستن معایب و مزایای هرکدام از این فایل‌ها برای انتخاب صحیح و متناسب با نیاز، لازم و ضروری است. مقاله زیر به شرح این مهم پرداخته است.

http://vector-conversions.com/vectorizing/raster_vs_vector.html

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
همیشه نبودن قابلیت‌هایی مثل Variables, Functions, Mixins، دستورات شرطی و حلقه‌ها و… یا نبودن یک ساختار منسجم، توسعه دهنگان وب را آزار می‌داد تا اینکه تکنولوژی‌هایی به نام Preprocessor ها مانند LESS و SASS و Stylus و … معرفی شدند که دارای Syntax سوای از CSS بودند و از راه‌ها و Syntax های دیگری برای اضافه کردن این قابلیت‌ها استفاده می‌کنند.
برای رفع این مشکلات و حتی بهبود کدنویسی، PostCSS معرفی شد که به عنوان ابزاری برای تبدیل CSS شما به CSS بهینه‌تر به کمک Module هایی بر پایه JS شناخته می‌شود برای مثال کد شما را فشرده می‌کند، پیشوندهای مروگر را اضافه می‌کند، قابلیتهایی مثل متغیر ها و… را به شما می‌دهد، قابلیت‌هایی که در آینده به CSS اضافه خواهند شد را اکنون در اختیار شما قرار می‌دهد و ده‌ها قابلیت دیگر که همگی اینها به عهده Module ها می‌باشد.از جمله Module های معروف می‌توان به autoprefixer و stylelint اشاره کرد که انتظارات را از یک Preprocessor یا Postprocessor نیز فراتر می‌برد.
در مقاله زیر به شرح امکانات و ویژگی های دیگر PostCSS و همینطور شناخت دقیق‌تر آن پرداخته شده است.

http://julian.io/some-things-you-may-think-about-postcss-and-you-might-be-wrong

#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مسائل مهمی که هر وبسایت نوپایی با آن مواجه است، شناخته شدن وبسایت توسط موتورهای جستجوگر یا همان search engine هاست.
به طور کلی باید گفت هرچقدر مطالب، موضوعات و متن وب سایت قویتر باشد، تعداد مراجعات به وبسایت و ارجاعات به سایت در شبکه‌های اجتماعی بیشتر خواهد بود و به این ترتیب است که موتورهای جستجوگر وبسایت شما را به عنوان سایتی که برای مردم جالب و جذاب است، می شناسند.
روش هایی برای بهبود فرایند گفته شده وجود دارد که به نام Search Engine Optimization یا همان SEO مرسوم شده‌اند.
سئو یا همانSEO، به مجموعه فعالیت‌هایی اطلاق می شود که در نتیجه آنها میتوان اطمینان داشت که نام وبسایت با جستجوی کلمات مرتبط با بیزنس و کاربری آن، در صفحات اصلی خروجی موتورهای جستجوگر وجود دارد.
مقاله زیر مجموعه فعالیت های SEO و روشهای آنرا شرح داده است.

http://www.wordstream.com/blog/ws/2012/01/17/seo-content-beginners-guide

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy


___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. بررسی جایگاه تکنولوژی Xamarin
#Xamarin
https://news.1rj.ru/str/SoftwarePhilosophy/678

۲. برنامه‌نویسی در JavaScript به شیوه JSFuck
#JSFuck #JavaScript
https://news.1rj.ru/str/SoftwarePhilosophy/680

۳. معرفی مفهوم Dotability‌
#Dotability‌ #FrameworkDesign
https://news.1rj.ru/str/SoftwarePhilosophy/682

۴. فایل‌های گرافیکی vector و raster
#vector #raster
https://news.1rj.ru/str/SoftwarePhilosophy/685

۵. امکانات و ویژگی‌های PostCSS
#css #postcss #less #sass
https://news.1rj.ru/str/SoftwarePhilosophy/687

۶. مفهوم SEO و عملکرد آن
#seo
https://news.1rj.ru/str/SoftwarePhilosophy/689

ـــــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
خواندن لاگ‌ها و فهمیدن آنها معمولا کار سخت و زمان‌بری است،‌ مخصوصا اگر این لاگ مربوط به فرایند بیلد یک سیستم در فرایند CI باشد. اخیرا Kirill Osenkov (یکی از برنامه‌نویسان کلیدی تیم دات‌نت) یک برنامه برای Visualization لاگ‌های MSBuild منتشر کرده‌است که خواندن این لاگ‌ها را بسیار راحت می‌کند. این برنامه لاگ‌ها را به صورت درختی نمایش‌ می‌دهد.

http://www.hanselman.com/blog/MSBuildStructuredLogRecordAndVisualizeYourBuilds.aspx

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۱۸۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با شدت گرفتن روند تغییرات در درخواست‌های مشتریان، نیازمندی‌های پروژه‌ها و مسائل مربوط به پشتیبانی محصولات در دهه‌های اخیر، بسیاری از شرکت ها پی بردند که هماهنگ شدن با بازار با استفاده از فرآیند های تجاری قدیمی امکان پذیر نیست. لذا بسیاری از توسعه دهندگان و مدیران محصولات به متدلوژی‌های جدید مانند Agile روی آوردند. در حال حاضر این متدلوژی با وجود نواقصی که به آن وارد است بیشترین طرفدار و بازدهی را به خصوص در میان شرکت های کامپیوتری داشته است.
اما لزوما استفاده از یک متدلوژی، روش یا ابزار موفق، دلیل بر موفق شدن ما نیست، لذا آشنایی با متدلوژی ها و رویکردهایی مانند Lean، Scrum یا Kanban و انتخاب بهترین روش بین آن ها با توجه به نوع محصول، مشتری و شرایط شرکتی که در آن مشغول به فعالیت هستیم یک ضرورت است.
مطالعه لینک زیر می تواند در انتخاب هوشمندانه‌تر این متدولوژی ها بسیار کمک کننده باشد.

https://realtimeboard.com/blog/how-to-choose-between-agile-lean-scrum-and-kanban-which-methodology-is-the-best/#.V18eTlUrLDe

#کاروان_جافی

لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027

کانال تلگرام:
@SoftwarePhilosophy



___
Forwarded from Iran Agile
چرا مدیرانی که متدولوژی تولید ندارند فکر می کنند اجایل کار می کنند؟

حدود ده دوازده سال پیش در شرکتی مشغول به کار بودم. آنجا هم مثل بسیاری دیگر از شرکتها متدولوژی مشخصی برای تولید نرم افزار نداشتیم و به قول معروف Code & Fix می کردیم. بابت این مساله هم گاهی در جلسات با مشتری شرمنده می شدیم و در جواب اینکه “از چه متدولوژی استفاده می کنید؟”، آسمان و ریسمان می بافتیم و توجیه می کردیم. تا اینکه اسم Agile یا چابک به گوش مدیران شرکت خورد. آن زمان تازه متدولوژی های چابک مطرح شده بود و بخصوص XP مورد توجه بود.

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

واقعیت این است که این مساله ربطی به این شرکت و آن زمان ندارد. هنوز هم بسیار اند شرکت هایی که درواقع متدولوژی تولید ندارند، ولی فکر می کنند که چابک کار می کنند. اما این تصور از کجا ناشی می شود؟ چرا مدیران فکر می کنند (یا تظاهر می کنند) که روش کارشان چابک است؟ یا بهتر است بگویم چه چیزی در مفهوم Agile هست که به مدیران و صاحبان شرکت های نرم افزاری اجازه می دهد خود را چابک بدانند؟
📰 📝

http://blog.scrum.ir/2016/01/we-do-agile

@iranagile
Forwarded from Iran Agile
📝 بام چگونه روش برنامه‌ریزی خود را تغییر داد؟

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

از یک طرف در بک‌لاگ محصول، از قبل کلی ویژگی پیاده‌سازی نشده وجود داشت و از طرف دیگر، ذی نفعان (بانک - مشتری - سازمان‌ها) دوست داشتند ایده‌های جدیدشان سریع‌تر پیاده سازی شوند. این مورد باعث ایجاد عارضه‌ای بنام لیست آرزوهای بابانوئل می شد.

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

اما این مشکل را چگونه باید حل کرد؟

📰 📝

http://blog.scrum.ir/2017/02/bam-release-plan