Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۳۸۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
ما به عنوان مهندسین نرم‌افزار عادت کردیم که نرم‌افزار بسازیم، در حقیقت به آن معتاد شده‌ایم. به خاطر همین موضو است که اغلب دوست نداریم به این فکر کنیم که تغییری که در نرم‌افزار می‌دهیم چطور باید در نسخه لایو اجرایی شود. خیلی وقت‌ها نرم‌افزار را به صورت بسیار عالی تغییر می‌دهیم، ولی برنامه‌ای برای اینکه این تغییر چطور باید در نسخه‌اجرایی اعمال شود نداریم.
یکی از دغدغه‌ اصلی یک مهندس نرم‌افزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرم‌افزار نوشته می‌شود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شده‌است.

http://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/


@SoftwarePhilosophy


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

۱. مقایسه ایران با مایکروسافت ۱۰ سال پیش! تلگرام را فیلتر کنیم؟

https://news.1rj.ru/str/SoftwarePhilosophy/1199

۲. آیا تکنولوژی یا زبان برنامه‌نویسی در موفقیت یا شکست پروژه‌های نرم‌افزاری تاثیری دارند؟

https://news.1rj.ru/str/SoftwarePhilosophy/1201

۳. درباره اعتماد و اعتماد سازی (Iran Agile)

https://news.1rj.ru/str/SoftwarePhilosophy/1202

۴. نظرسنجی سالانه Stackoverflow (Iran .Net)

https://news.1rj.ru/str/SoftwarePhilosophy/1203

۵. ایده‌هایی از بازی شطرنج برای آموزش دیزاین (فلسفه دیزاین)

https://news.1rj.ru/str/SoftwarePhilosophy/1204

۶. اهمیت Software Migration و نوع نگاه در زمان تولید نرم‌افزار

https://news.1rj.ru/str/SoftwarePhilosophy/1206

ـــــــــــ

@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از دغدغه‌های همیشگی برنامه‌نویسان، تولید نرم‌افزار با سرعت بیشتر و کیفیت بالاتر می‌باشد. یکی از زبان‌های جدید پرطرفدار که به این امر کمک می کند F# است. با F# می‌توان بصورت Functional کد نوشت. تعداد خطوط نوشته شده در زبانهای Functional نسبت به سایر زبان‌ها کم می‌باشد. بطور مثال ۲۰ خط کد در C# با حدود ۵ خط کد در F# قابل بازنویسی است. ویدیو زیر به معرفی F# برای برنامه نویسان C# پرداخته است.

https://www.youtube.com/watch?v=KPa8Yw_Navk

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/KfWV30h1wUK

#علیرضا_وفی (http://ow.ly/Vna930dsUGr)

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

___
تجزیه اعداد به عوامل اول با استفاده از یکوارها

یکی از مفاهیمی که در دنیای امنیت بسیار از آن استفاده می‌شود، سخت بودن تجزیه اعداد بزرگ با عوامل اول بزرگ است. به این معنی که اگر دو عدد اول خیلی بزرگ را در هم ضرب کنیم و حاصلضرت را در اختیار شخصی بگذاریم، اون نمی‌تواند در زمان معقول به آن دو عدد اول دست پیدا کند. در حقیقت تا یکی از عوامل را نداشته باشد نمی‌تواند عامل دیگر را پیدا کند. این مفهوم یکی از مفاهیم پایه‌ای برای الگوریتم‌های public key/private key مانند RSA است.
مقاله زیر یک روش جدید را برای تجزیه اعداد با استفاده از خواص اعداد Repunit یا همان اعداد متشکل از 1 مانند 11, 111, 1111, 11111, … ارائه داده‌است. این الگوریتم بیشتر از لحاظ چند اثبات ریاضی جالب است که ارتباط بین این اعداد با اعداد اول را تشریح کرده‌است.

لینک کامل این مقاله در پست زیر آمده است.

http://mehrandvd.me/2018/02/16/using-repunits-prime-factorization/


⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/9Yrt30jvRhK

#مهران_داودی (http://ow.ly/GwIl309lFEm)

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


___
Forwarded from Iran Agile
🔴 کتاب مدیریت محصول چابک با اسکرام : خلق محصولی که مشتری عاشقش می شود

اثر رومن پیچلر

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

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

خرید و اطلاعات بیشتر
https://goo.gl/1397QR
Forwarded from فلسفه دیزاین
به نام دیزاین، به کام تاریکی

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

نویسنده مقاله امروز آقای Nir Eyal است. ایشان نویسنده کتابی با عنوان Hooked هستند که در آن توضیح می‌دهد چگونه می‌توان استفاده از یک محصول را به عادتی برای کاربران‌ش تبدیل کرد.
جدای از اینکه مطالعه این کتاب را به شدت توصیه می‌کنم،‌ مقاله ایشان هم نکته قابل توجهی را مطرح می‌کند. اینکه بهتر است دیزاینرها قدرت‌های خود را با درایت بیشتری استفاده کنند؛ صرفا به «در دایره قوانین حقوقی بودن» اکتفا نکرده و قوانین اخلاقی را هم در نظر بیاورند.
برای کمک به این اتفاق، ایشان تستی را پیشنهاد می‌دهند. نام این تست را «تست پشیمانی» گذاشته‌اند و به صورت یک سوال آن را مطرح می‌کنند:
اگر کاربران تمامی اطلاعاتی را که دیزاینر یک محصول، از آن محصول دارد بدانند، باز هم به استفاده از آن محصول ادامه می‌دهند؟

نظر شما چیست؟
مقاله امروز را از دست ندهید. همچنین خوشحال می‌شوم نظراتتان را با من در میان بگذارید.

https://medium.com/wordsthatmatter/designers-need-the-regret-test-86ef957e0d34

(زمان حدودی مطالعه، ۷ دقیقه)

پ. ن.
پیش‌تر هم درباره جنبه‌های سیاه قدرت‌ها و ابزارهای دیزاین صحبت کرده بودیم که در لینک زیر قابل بازبینی‌ست:
«جادوی سیاهی به نام نوتیفیکیشن»
t.me/Dexign/225

#چالش #دیزاین #تست_پشیمانی
@Dexign فلسفه دیزاین

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

۱. معرفی F# برای برنامه نویسان C#

https://news.1rj.ru/str/SoftwarePhilosophy/1210
https://news.1rj.ru/str/SoftwarePhilosophy/1211

۲. تجزیه اعداد به عوامل اول با استفاده از یکوارها

https://news.1rj.ru/str/SoftwarePhilosophy/1212

۳. کتاب مدیریت محصول چابک با اسکرام : خلق محصولی که مشتری عاشقش می شود (Iran Agile)

https://news.1rj.ru/str/SoftwarePhilosophy/1213

۴. به نام دیزاین، به کام تاریکی (فلسفه دیزاین)

https://news.1rj.ru/str/SoftwarePhilosophy/1214

ـــــــــــ

@SoftwarePhilosophy
Forwarded from Iran .Net (Ehsan Mirsaeedi)
قابلیت های جدید Entity Framework Core
FromSql

در نسخه Core، قابلیت جدیدی تحت عنوان FromSql به Entity Framework افزوده شده است. در وهله اول ممکن است اینطور برداشت شود این قابلیت در واقع همان قابلیت SqlQuery سابق در نسخه های گذشته باشد که یک کوئری را به صورت متن دریافت می کرد و سطرها را برگشت میداد. اما، FromSql در واقع ویژگی به کلی مجزایی می باشد که فرصت های جدیدی را می تواند برای ما فراهم کند.
پیش از پرداخت به جزییات بیشتر باید بدانیم که در FromSql بر خلاف SqlQuery نمی توانیم هر نوع ساختار دلخواهی را برای سطر های برگشتی انتخاب کنیم، بلکه ساختار برگشتی باید عینا مشابه Entity تعریف شده در DbContext باشد. در واقع این متد صرفا از طریق DbSet دسترس می باشد.

var custs = db.Customers
.FromSql("Select * from Customers")
.ToList();



این محدودیت، موجب می شود که بتوانیم از FromSql همراه متدهای دیگر Linq نظیر Where و Include استفاده کنیم. حتی می توانیم توابع متنوع و پرقدرت SQL Server را که از طریق EF در دسترسی نمی باشند صدا بزنیم و همچنان ازمزایای Linq استفاده کنیم.

برای شرح دقیق تر این قابلیت و درهای جدیدی که باز می کند، می تواند به مقاله کوتاه زیر از سایت VisualStudio Magazine مراجعه کنید:

https://visualstudiomagazine.com/articles/2018/04/01/leveraging-raw-sql.aspx
مفهوم blockchain یکی از مفاهیم جذابی است که در چند سال اخیر توجه بسیاری را به خود جذب کرده. تکنولوژی‌ها و استارتاپ‌های زیادی نیز بر پایه این مفهوم ساخته شده‌اند.
اما این مفوم جذاب چیست؟ و مهمتر از این که چیست، با آن چه کارهایی می‌توان انجام داد؟ چه بیزنس‌هایی می‌توان با آن خلق کرد؟ چه بیزنس‌هایی نباید با آن خلق کرد!؟ چه تیم‌هایی در ایران می‌توان به این منظور شکل داد؟

اینها همه قسمت‌هایی از سوالاتی هستند که Startup Week تهران و به دنبال آن Startup Weekend Blockchain به آنها خواهند پرداخت.

با هماهنگی‌های انجام شده، قرار است سه ورک‌شاپ از طرف «Software Philosophy» در این رویداد ارائه شود. این سه ورک‌شاپ با عنواین زیر طراحی شده‌اند.

Workshop 1: Essential Blockchain: from business perspective
- How to teach it to your Grandmother!

Workshop 2: Blockchain: From A Technical Perspective
- Information Security basics and mechanisms
- Basic concepts: block, blockchain, hash validation, proof of work

Workshop 3: Modern software development necessary for any startup
- The Philosophy: Architecture, Team, Technology
- Infrastructure: Azure in practice, Release pipeline
- Collaboration: VSTS, Slack, CI/CD

همچنین برای اعضای کانال «فلسفه نرم‌افزار» یک کد تخفیف در نظر گرفته‌شده است که می‌توانید در هنگام ثبت‌نام از آن استفاده کنید.

کد تخفیف مخصوص «فلسفه نرم‌افزار»: Philosophy

http://StartupWeek.ir

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/jVVA30jCdqb

#مهران_داودی (http://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریم‌ورک React یکی از فریم‌ورک‌هایی است که محبوبیت بسیار زیادی بین برنامه‌نویسان وب (و موبایل) پیدا کرده‌است. معماری این فریم‌ورک بسیار زیبا، سبک و قابل گسترش است. مفهوم Immutable طوری در این فریم‌ورک دیده شده که به نظر من یکی از مهمترین دلایل تمایز این زیرساخت با سایر زیرساخت‌ها است. هر اکوسیستمی که در community محبوب شود، باید منتظر کتابخانه‌‌های جذابی باشید که توسط برنامه‌نویسان دیگر برای آن ساخته می‌شود.
لینک زیر ۱۰ کتابخانه جذاب روی GitHub را که برای React توسعه داده شده‌اند را معرفی کرده‌است.


https://hackernoon.com/top-10-react-libraries-on-github-ebf730e7ac25


⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/MX9B30hGWbQ

#مهران_داودی (http://ow.ly/GwIl309lFEm)

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

___
Forwarded from فلسفه دیزاین
راهنمای کامل طراحی آیکن‌های Flat
+ نکات کنکوری

با وجود ده‌ها وب‌سایت دریافت رایگان آیکن، طراحی بسته آیکن‌های (Icon Pack) یک محصول در ابتدا کار ساده‌ای به نظر می‌رسد که هر دیزاینری، با داشتن مقداری سلیقه، می‌تواند به اندازه خوبی در آن موفق باشد. ولی واقعیت این است که طراحی آیکن‌ها پیچیدگی‌ها و نکات ظریف بسیاری دارد که اغلب به مرور زمان و در مسیر «از خوب به عالی رسیدن» برای دیزاینرها آشکار می‌شود.
از نمونه‌های مختلف این نکات می‌توان به رعایت هماهنگی وزن بصری، Pixel Perfect بودن و یا هم‌خانواده بودنشان اشاره کرد.

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

مهم نیست در چه مرحله‌ای از دیزاین هستید، مقاله امروز را از دست ندهید:

https://medium.com/@shestopalov.v/icon-set-3b4fc87dc6b5

(زمان حدودی مطالعه، ۸ دقیقه)

مطلب مرتبط برای علاقه‌مندان:
اگر مقاله امروز برای شما جذاب بوده است، پیشنهاد میکنم که مقاله مرتبطی را که قبلا در کانال معرفی کرده بودیم، مطالعه کنید:
«به چشمان خود اعتماد کنیم،
مروری بر تناقض‌های تراز بصری»
https://news.1rj.ru/str/Dexign/99

#راهنما #طراحی_بصری #آیکن
@Dexign فلسفه دیزاین

___
Forwarded from Iran .Net (Ehsan Mirsaeedi)
اگر دانشجو هستید

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

شما هم اگر دانشجو هستید یا ایمیل دانشجویی تان هنوز در دسترس هست، می توانید به راحتی (بعضا بدون داشتن هیچ گونه کردیت کارتی) از محصولات زیر استفاده کنید:

* بسته Github Student Developer Pack: این برنامه که توسط گیت هاب برای دانشجویان فراهم شده می تواند دسترسی شما را به سرویس های متنوعی نظیر SendGrid، DigitalOcean، Sentry، NameCheap و Bitnami فراهم کند.

https://education.github.com/pack

* پلن Jetbrain: کمپانی Jetbrain محصولات پرقدرت و پرطرفداری برای توسعه دهنده ها ارائه می دهد. اگر دانشجو هستید، همه آن ها را به راحتی می توانید دانلود کنید.

https://www.jetbrains.com/student/

* پلن Microsoft Imagine: محصولات مایکروسافت نظیر Windows، Office، Office365، VisualStduio و Sql Server در عمده دانشگاه های جهان از طریق وب سایت onthehub، به صورت رایگان در اختیار دانشجویان می باشد. اما به هر حال دانشجویان ایرانی ایی که نمی توانند از این امکانات استفاده کنند، می توانند به عضویت Microsoft Imagine در بیایند تا به طور رایگان 6 ماه عضو سایت آموزشی Pluralsight شوند و همچنین بتوانند به اندازه 100 دلار کردیت دریافت کنند که از سیستم کلاد مایکروسافت و سرویس های آن به طور رایگان استفاده کنند (بدون نیاز به کردیت کارت)

https://imagine.microsoft.com/en-us

https://blogs.msdn.microsoft.com/microsoftimagine/2018/03/01/announcing-azure-for-students/

* پلن Aws Educate: که از طرف آمازون ارائه می شود و دانشجویان می توانند بدون داشن کردیت کارت از سامانه کلاد آمازون استفاده کنند. (اطلاعی که در ایران قابل استفاده هست ندارم!)

https://aws.amazon.com/education/awseducate/

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

@irandotnet
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مهمترین کارهایی که یک معمار نرم‌افزار انجام می‌‌دهد تشخیص و خلق مفهومی به نام «فضا» است. اگر در نرم‌افزاری فضاها به درستی ساخته نشوند، برنامه نویسان دچار سردرگمی می‌شوند و عمدتا کدهای تکراری خواهند نوشت. ساخت فضاهای درست توسط معمار نرم‌افزار احتمال نوشته شدن کدهای تکراری یا اضافی را کم می‌کند.

در لینک زیر مفهوم فضا در معماری نرم‌افزار توضیح داده شده
http://mehrandvd.me/2015/09/16/software-architect-its-all-about-spaces/
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم «Lambda Expression» یکی از مفاهیم جذابی است که از دنیای Functional Programming وارد زبان‌های شی‌گرا شده‌است. در نسخه Java 8 این امکان به زبان جاوا هم اضافه شده‌است. عبارات لامبدا باعث می‌شوند برنامه نویسی به شدت لذت‌بخش‌تر و کم‌خطا تر شوند. همچنین خوانایی کد می‌تواند با استفاده از لامبدا بسیار بهتر شود. مقاله زیر که به توضیح چگونگی استفاده از لامبدا در زبان جاوا پرداخته است، نشان می‌دهد چگونه برنامه نویسی با این مفهوم لذت‌بخش‌تر شده است.

http://mehrandvd.me/2015/09/10/tasty-lambdas-in-java-8/

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

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



___
Software Philosophy
مقایسه ایران با مایکروسافت ۱۰ سال پیش! تلگرام را فیلتر کنیم؟ تلگرام یک تهدید است برای اجتماع ایران؟ تلگرام یک تهدید است برای اقتصاد؟ همه اینها درست هستند ولی قضیه عمیق‌تر از خود تلگرام است. در حقیقت تلگرام نماینده یک شبکه باز است که در آن همه آزادانه حق دارند…
سلام دوستان،
در صورت فیلتر شدن تلگرام ما هیچ کاری نمی‌کنیم! هیچ‌جایی هم نمی‌رویم، همینجا هستیم و پست می‌فرستیم!
چون مطمئن هستیم مخاطبین این کانال دانش کافی برای دور زدن فیلترینگ را دارند.

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


http://mehrandvd.me

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/wJ6i30jn1B4

#مهران_داودی (http://ow.ly/GwIl309lFEm)

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


___