Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
Forwarded from Software Philosophy
ما به عنوان مهندسین نرمافزار عادت کردیم که نرمافزار بسازیم، در حقیقت به آن معتاد شدهایم. به خاطر همین موضو است که اغلب دوست نداریم به این فکر کنیم که تغییری که در نرمافزار میدهیم چطور باید در نسخه لایو اجرایی شود. خیلی وقتها نرمافزار را به صورت بسیار عالی تغییر میدهیم، ولی برنامهای برای اینکه این تغییر چطور باید در نسخهاجرایی اعمال شود نداریم.
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
ضد الگو یا Anti Pattern «چکش طلایی» موردی است که در بسیاری از راهحلها دیده میشود. این ضد الگو از این ایده آمده است: «من یک چکش دارم، پس همه چیز برای من مثل یک میخ است»
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
وقتی از یک ابزار استفاده میکنیم به آن عادت میکنیم و سعی میکنیم از آن به بعد همه مسائل را با آن حل کنیم. مثلا این ایده که همه کارها را باید با دیتابیس انجام داد، یا هر پروژهای را باید با این زبان خاص نوشت. یکی از دلایل این ضد الگو موفقیتهای قبلی در استفاده از یک تکنولوژی است. البته این ضد الگو استثناهایی هم دارد. برای مثال ممکن است شرکت برنامهریزی بلند مدتی داشته باشد و در این برنامهریزی یک فریمورک نرمافزاری با یک معماری و تکنولوژی خاص خلق کرده باشد. در این صورت این این فریمورک طوری طراحی شده که بتواند یک طیف خاص از مسائل را با هزینه کمتر حل کند.
لینک زیر این ضد الگو را با جزئیات بیشتری توضیح دادهاست.
https://sourcemaking.com/antipatterns/golden-hammer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
Forwarded from Iran .Net
هنگامی که پروژه های بسیار بزرگ با روش Domain Driven Design پیاده سازی می شوند، پروژه به بخش های مجزا از هم به نام Bounded Context ها تفکیک می شود. هر Bounded Context به طور کامل از بقیه هم تایان اش جداست و حتی از پایگاه داده و مدل های متفاوتی استفاده می کند. مثلا در سامانه داخلی یک شرکت، بخش های مربوط به تیم فروش از بخش های مربوط به تیم پشتیبانی جداست، این جدا سازی به این معنا است که هر کدام از این ها به طور کلی نرم افزارهای مجزایی هستند. این جداسازی حداکثری موجب می شود که نگهداری و فهم پروژه به شدت آسان تر شود. این را مقایسه کنید با روشی که همه بخش های یک سامانه در یک پروژه و یک نرم افزار نگهداری شده اند و همه چیز در هم تنیده شده و اگر کاری در بخش فروش صورت می گیرد، بخش پشتیبانی احتمالا با مشکل مواجه خواهد شد.
همانطور که عنوان شد برای هر Bounded Context باید از یک پایگاه داده مجزا استفاده کنیم، چرا که اصولا داده های هر BC کاملا مجزا و متفاوت از دیگری هستند. اما گاهی پیش می آید که بین برخی از BC ها نیاز به اشتراک گذاری داده ها داریم. مثلا کالایی بین تیم فروش و تیم پشتیبانی باید به اشتراک گذاشته شود، تا تیم فروش بداند کی کالایی به فروش رفته و تیم پشتیبانی بداند که آیا تا به حال از گارانتی آن کالا استفاده شده است یا خیر.
چطور داده ها بین BC ها به اشتراک گذاری می شوند؟ برای اینکار از الگو های مبتنی بر Event Bus استفاده می کنیم. ابزار هایی که برای پیاده سازی این الگو به ما کمک می کنند:
1. RabbitMQ
2. Sql Server Service Broker
3. MSMQ
4. NServiceBus
در مقاله زیر، خانم Julie Lerman به زبان ساده مثالی را در این باب ارائه کرده اند. ایشان از RabbitMQ برای این منظور استفاده کرده اند.
https://msdn.microsoft.com/en-us/magazine/e2e28ded-bd59-4f93-a0e7-795545189039
همانطور که عنوان شد برای هر Bounded Context باید از یک پایگاه داده مجزا استفاده کنیم، چرا که اصولا داده های هر BC کاملا مجزا و متفاوت از دیگری هستند. اما گاهی پیش می آید که بین برخی از BC ها نیاز به اشتراک گذاری داده ها داریم. مثلا کالایی بین تیم فروش و تیم پشتیبانی باید به اشتراک گذاشته شود، تا تیم فروش بداند کی کالایی به فروش رفته و تیم پشتیبانی بداند که آیا تا به حال از گارانتی آن کالا استفاده شده است یا خیر.
چطور داده ها بین BC ها به اشتراک گذاری می شوند؟ برای اینکار از الگو های مبتنی بر Event Bus استفاده می کنیم. ابزار هایی که برای پیاده سازی این الگو به ما کمک می کنند:
1. RabbitMQ
2. Sql Server Service Broker
3. MSMQ
4. NServiceBus
در مقاله زیر، خانم Julie Lerman به زبان ساده مثالی را در این باب ارائه کرده اند. ایشان از RabbitMQ برای این منظور استفاده کرده اند.
https://msdn.microsoft.com/en-us/magazine/e2e28ded-bd59-4f93-a0e7-795545189039
Forwarded from Software Philosophy
اتفاقی که باید در وب میافتاد بالاخره افتاد! گوگل، مایکروسافت و موزیلا در یک تیم مشترک تصمیم گرفتهاند تا بر روی یک باینری فرمت جدید برای وب کار کنند. این فرمت WebAssembly نام داره و تکنولوژی آن بر بستر C++ سوار شده همچنین گفته شده سرعت Decode در آن ۲۳ برابر سریعتر است.
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
TechCrunch
Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web
Google, Microsoft, Mozilla and some of the engineers on the WebKit project today announced that they have teamed up to launch WebAssembly, a new binary format for compiling applications for the web.
پلتفرم Xamarin بالاخره Open Source شد. این پلتفرم به عنوان یکی از بهترین پلتفرمهای توسعه نرمافزارهای موبایل است و به صورت Cross Platform شناخته میشود. یکی از مهمترین مشکلاتی که این پلتفرم داشت، قیمت بالای آن یعنی حدود ۲۰۰۰ دلار به ازای هر برنامهنویس=پلتفرم بود. یعنی اگر شما میخواستید با یک برنامه نویس برنامهای برای سه پلتفرم Android, iOS, Win تولید کنید باید ۶۰۰۰ دلار بابت این پلتفرم خرج میکردید. خبری که مدتی پیش منتشر شد این بود که مایکروسافت این شرکت را خریده و آن را رایگان کرده است! خبر جدید این است که نه تنها رایگان شدهاست بلکه از این به بعد این پروژه Open Source نیز شدهاست. از طریق لینک زیر میتوایند جزئیات بیشتری در این مورد بخوانید.
https://open.xamarin.com/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://open.xamarin.com/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Forwarded from Iran .Net
در هنگام نوشتن کد های CSS مجبور هستیم تا برای برخی از ویژگی ها، پیاده سازی های مجزایی برای هر مرورگر داشته باشیم. هر مرورگر - حتی وابسته به نسخه آن - با گونه ی خاصی از ویژگی های منحصر به فردِ مربوط به خودش کار می کند. کروم، فایرفاکس، نسخه های IE، اوپرا و ....
هر کدام در بسیاری موارد نیاز به کد های متفاوت css دارند.
آیا بهتر نیست ما به روش استاندارد کدهای css خود را تولید کنیم و سپس از gulp برای افزودن ویژگی های خاصِ هر مرورگر به فایل css استفاده کنیم؟
افزونه gulp-autoprefixer دقیقا برای همین منظور به کار می رود.
https://www.npmjs.com/package/gulp-autoprefixer
@irandotnet
هر کدام در بسیاری موارد نیاز به کد های متفاوت css دارند.
آیا بهتر نیست ما به روش استاندارد کدهای css خود را تولید کنیم و سپس از gulp برای افزودن ویژگی های خاصِ هر مرورگر به فایل css استفاده کنیم؟
افزونه gulp-autoprefixer دقیقا برای همین منظور به کار می رود.
https://www.npmjs.com/package/gulp-autoprefixer
@irandotnet
ساخت انیمیشن با JavaScript یکی از کارهای جذاب این روزهای دنیای وب است. بازی سه بعدی زیر که در وب اجرا میشود توسط کتابخانه ThreeJs نوشته شدهاست. کمی بازی کردن با آن به شما نشان میدهد که قدرت این کتابخانه چقدر بالاست. جالبی این بازی این است که نه تنها تمام سورس آن روی اینترنت است بلکه نویسنده آن نحوه نوشتن این بازی را کاملا در لینک زیر توضیح داده و شما با خواندن آن به راحتی میتوانید مجددا این بازی را خودتان بنویسید.
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
لینک خود بازی:
https://tympanus.net/Tutorials/TheAviator/
لینک توضیح سورس:
https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/
https://tympanus.net/Tutorials/TheAviator/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
tympanus.net
The Aviator: The Game | Codrops
Demo of the game: The Making of 'The Aviator': Animating a Basic 3D Scene with Three.js
Forwarded from Software Philosophy
یک پروژه برای تحلیل جهان هستی!
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
Microsoft SQL Server Blog
Mapping the Universe with SQL Server - Microsoft SQL Server Blog
This blog post was co-authored by Joseph Sirosh, Corporate Vice President, and Rimma V. Nehme, Principal Software Engineer, at the Data Group at Microsoft. Figure 1: Visible objects of the Sloan Digital Sky Survey (SDSS) DR7 dataset. Over the last 15 years…
تا امروز فیدبکهای خیلی خوبی از شما دوستان گرفتیم. بر اساس فیدبکهای شما تصمیم گرفتیم که پستهای این کانال را در سه دسته بندی پست کنیم:
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
۱) مطالب مهندسی و معماری نرمافزار و مدیریت تیمهای نرمافزاری
۲) مطالب مربوط به آخرین تکنولوژیها
۳) مطالب مربوط به تکنولوژیهای مرسوم که در شرکتها استفاده میشود.
هر هفته مطالبی که پست میشود شامل تمامی دستههای بالا خواهد بود. به این ترتیب اگر به یکی یا چندتا از دستهبندیها علاقه دارید، هر هفته حتما چند پست مورد علاقه شما در این کانال «فلسفه نرمافزار» وجود دارد.
لطفا اگر نظر، پیشنهاد، انتقاد و یا هرگونه فیدبکی نسبت به این کانال دارید، در توئیتر بنویسید. مطمئن باشید ما آنها را میخوانیم. (در توئیتر https://twitter.com/mehrandvd را منشن کنید و از هشتگ #SoftwarePhilosophy استفاده کنید)
پروتکل HTTP/2 امکانات جالبی دارد که اکثر آنها بر روی Perfomance تاثیر بسیار زیادی دارند. باز نگه داشتن Connection و استفاده از آن برای چندین درخواست و همچنین پشتیبانی از Server Push از مزایای این پروتکل هستند. مقاله زیر در مورد این پروتکل توضیحاتی بیشتر و کاربردی دادهاست.
https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
The Cloudflare Blog
Announcing Support for HTTP/2 Server Push
Last November, we rolled out HTTP/2 support for all our customers. At the time, HTTP/2 was not in wide use, but more than 88k of the Alexa 2 million websites are now HTTP/2-enabled.
Forwarded from Iran .Net
فرض کنید تعداد فایل های javascript و css زیادی در پروژه تان دارید. اخیرا هم مطالب زیادی در مورد bundling و minfication خوانده اید و می خواهید با اعتماد به نفس بالا، با استفاده از قابلیت های توکار ASPNET کاری کنید که بهره وری سایت تان را با این روش ها بالا ببرید.
مشکلی که در این مواقع پیش می آید این است که دیباگ این نوع از فایل های جدیدِ bundle و minify شده به شدت سخت و دشوار است و این ها هیچ شباهتی به فایل هایی که کد شان توسط شما تولید شده اند، ندارند.
اگر در محیط Production و "عملیاتی" مشکلی به شما گزارش شود، شما چطور می خواهید بفهمید که مشکل از کجاست؟ مخصوصا این مشکل زمانی محرز تر می شود که تعداد زیادی فایل js داشته باشید که همه شان را در یک فایل bundle کرده باشید و بعد هم با انجام minification، کد نهایی را به کلی دگرگون کرده اید و دیگر از کد سر در نمیاورید.
این مشکل زمانی حادتر می شود که کد های اصلی ما با TypeScript نوشته شده باشند. یا فایل های CSS مان با SASS و یا LESS تولید شده باشند. دیگر عملا هیچ ربط و نسخی بین کدهایی که توسعه کرده ایم و کدهایی که مرورگر استفاده می کند وجود ندارد و کار دیباگ بسیار دشوار خواهد شد.
راه حل این مشکل استفاده از فایل هایی به نام Sourcemap می باشد. sourcemap ها در همه مرورگرهای مدرن پشتیبانی می شوند. به کمک این فایل ها، مرورگر در عین اینکه فایل های minify و bundle شده را اجرا می کند، در هنگام دیباگ می تواند نشان دهد که هر خط از این کد ها، به کدام فایل و کدام خط از کدهایی که ما توسعه داده ایم مربوط می شوند.
متاسفانه قابلیت های سنتی توکار ASPNET امکان تولید فایل های sourcemap را ندارند و برنامه نویس های سنتی ASPNET از این قابلیت بی بهره می باشند. پس باید با سختیِ دیباگ کدهای عجیب غریب سمت کلاینت دسته و پنجه نرم کنند.
یکی از ساده ترین راه ها برای تولید فایل های sourcemap استفاده از gulp می باشد.
پس "بیایید برای پیوستن به دنیای مدرن وب از gulp استفاده کنیم!"
تشریح sourcemap با مثال:
https://www.sitepoint.com/enhance-your-javascript-debugging-with-cross-browser-source-maps/
مشکلی که در این مواقع پیش می آید این است که دیباگ این نوع از فایل های جدیدِ bundle و minify شده به شدت سخت و دشوار است و این ها هیچ شباهتی به فایل هایی که کد شان توسط شما تولید شده اند، ندارند.
اگر در محیط Production و "عملیاتی" مشکلی به شما گزارش شود، شما چطور می خواهید بفهمید که مشکل از کجاست؟ مخصوصا این مشکل زمانی محرز تر می شود که تعداد زیادی فایل js داشته باشید که همه شان را در یک فایل bundle کرده باشید و بعد هم با انجام minification، کد نهایی را به کلی دگرگون کرده اید و دیگر از کد سر در نمیاورید.
این مشکل زمانی حادتر می شود که کد های اصلی ما با TypeScript نوشته شده باشند. یا فایل های CSS مان با SASS و یا LESS تولید شده باشند. دیگر عملا هیچ ربط و نسخی بین کدهایی که توسعه کرده ایم و کدهایی که مرورگر استفاده می کند وجود ندارد و کار دیباگ بسیار دشوار خواهد شد.
راه حل این مشکل استفاده از فایل هایی به نام Sourcemap می باشد. sourcemap ها در همه مرورگرهای مدرن پشتیبانی می شوند. به کمک این فایل ها، مرورگر در عین اینکه فایل های minify و bundle شده را اجرا می کند، در هنگام دیباگ می تواند نشان دهد که هر خط از این کد ها، به کدام فایل و کدام خط از کدهایی که ما توسعه داده ایم مربوط می شوند.
متاسفانه قابلیت های سنتی توکار ASPNET امکان تولید فایل های sourcemap را ندارند و برنامه نویس های سنتی ASPNET از این قابلیت بی بهره می باشند. پس باید با سختیِ دیباگ کدهای عجیب غریب سمت کلاینت دسته و پنجه نرم کنند.
یکی از ساده ترین راه ها برای تولید فایل های sourcemap استفاده از gulp می باشد.
پس "بیایید برای پیوستن به دنیای مدرن وب از gulp استفاده کنیم!"
تشریح sourcemap با مثال:
https://www.sitepoint.com/enhance-your-javascript-debugging-with-cross-browser-source-maps/
SitePoint
Enhance Your JavaScript Debugging with Cross-Browser Source Maps
Microsoft's David Rousset explains how to simplify JavaScript debugging by using cross-browser source maps.
حتما تا به حال از کتابخانه Bootstrap استفاده کردهاید. این نوع کتابخانهها کمک میکنند که بتوانید به راحتی از امکانات CSS استفاده کنید، بدون اینکه نیاز به درگیر شدن با پیچیدگیهای آن پیدا کنید. کتابخانههای زیادی از این قبیل به وجود آمدهاند. یکی از این کتابخانهها که اخیرا به دنیای برنامهنویسی معرفی شده کتابخانه Office UI Fabric است. این کتابخانه که تقریبا تمام امکانات گرید سیستمBootstrap را دارد بر اساس معماری مدرن UI که در نرمافزارهای مایکروسافت استفاده شده ساخته شدهاست. اگر با این کتابخانه کار کنید، میتوانید برنامههایی بسازید که UI آن سازگار با برنامههایی مانند Word Online, Excel Online, Outlook Online و مانند آن باشد.
https://dev.office.com/fabric/get-started
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://dev.office.com/fabric/get-started
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
این روزها تعداد فریمورکهای جاوا اسکریپتی زیادی وجود دارند. دلیل وجود این همه فریمورک سختی کار با جاوا اسکریپت است. در واقع در سناریوهای خیلی بزرگ مدیریت و دیباگ یک پروژه جاوا اسکرپیتی به مراتب سخت خواهد شد. اما در سالهای اخیر ابزارهای کار با جاوا اسکریپت به طور قابل ملاحظه ایی بهبود یافته اند و شرکتهایی مانند گوگل، اپل و مایکروسافت برای بهبود این زبان سرمایه گذاری های زیادی انجام دادهاند. در نتیجه با توسعه یک سری فریمورک، نوشتن برنامههایی با مقیاس بزرگ درون مرورگر را لذت بخش تر کردهاند. با ورود AngularJS، امکان نوشتن اپلیکیشنهایی که کاملا درون مرورگر اجرا شوند میسر شده است. هدف از AngularJS کمک به طراحان جهت طراحی کامپوننتهای قدرتمند است. در این مطلب مزایا و معایب Angular و همچنین دلیل استفاده از این فریمورک بررسی شده است.
https://sirwan.info/Why-Angular
#سیروان_عفیفی
لینکدین:
https://ir.linkedin.com/in/sirwan-afifi-73225345
کانال تلگرام:
@SoftwarePhilisophy
___
https://sirwan.info/Why-Angular
#سیروان_عفیفی
لینکدین:
https://ir.linkedin.com/in/sirwan-afifi-73225345
کانال تلگرام:
@SoftwarePhilisophy
___
هشت نکته در زبان C# که احتمالا آنها را نمیدانید! دو نکته که برای من جالب بود:
۱. در Indexer ها میتوان از params استفاده کرد و چندین پارامتر ورودی استفاده کرد.
۲. بر روی enum ها هم میتوان Extension Method تعریف کرد.
https://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
۱. در Indexer ها میتوان از params استفاده کرد و چندین پارامتر ورودی استفاده کرد.
۲. بر روی enum ها هم میتوان Extension Method تعریف کرد.
https://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
DamienG
8 things you probably didn’t know about C# - DamienG
Here’s a few unusual things about C# that few C# developers seem to know about.
شرکت اوراکل اعلام کرد زمان ارائه Java 9 تا سال ۲۰۱۷ به تعویق انداخته شدهاست. علت این تصمیم پروژه Jigsaw اعلام شدهاست. هدف پروژه Jigsaw ماژولار کردن و شکستن JRE به Interoperable Components است. به این ترتیب با انجام این پروژه هر برنامه میتواند JRE شخصیسازی شدهتری داشته باشد که در نتیجه میتوان برنامههای جاوا را به راحتی به قطعات کوچک محساباتی Scale کرد که منجر به بهبود سرعت و امنیت میشود. در این زمینه Mark Reinhold معمار ارشد پلتفرم جاوا در شرکت اوراکل گفته است که برنامهنویسان علاقه بسیار زیادی به این رویکرد از طریق فیدبکها ارائه دادهاند.
https://blog.takipi.com/jigsaw-delays-push-java-9-launch-date-to-2017/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blog.takipi.com/jigsaw-delays-push-java-9-launch-date-to-2017/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Takipi Blog
Jigsaw Delays Push Java 9 Launch Date to 2017 | Takipi Blog
The Java 9 release date is postponed to 2017 because of delays in Project Jigsaw
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
ضد الگوی Blind Developer یا «برنامه نویس کور» یک ضد الگوی شایع در تیمهای نرمافزاری است که معمولا از زبان معمار نرمافزار با این جمله تشریح میشود: «هیچوقت به برنامهنویس اجازه ندهید با مشتری صحبت کند». این مفهوم به این دلیل به وجود آمده که معمولا افراد غیر برنامهنویس بهتر نیازمندی کاربر را درک میکنند. البته این واقعیت اغلب صادق است ولی نکتهای که به آن توجه نشدهاست تغییرات است. تغییرات در نیازمندی باعث افزایش هزینه توسعه میشود. در جریان نبودن برنامهنویسان از بیزنس معمولا باعث میشود این تغییرات هزینه بسیار بیشتری داشته باشد. همچنین باعث میشود بسیاری از ریسکها خیلی دیر و حتی هنگام تحویل محصول نمایان شوند.
در لینک زیر این ضد الگو بیشتر توضیح داده شدهاست.
https://sourcemaking.com/antipatterns/mushroom-management
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
در لینک زیر این ضد الگو بیشتر توضیح داده شدهاست.
https://sourcemaking.com/antipatterns/mushroom-management
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Sourcemaking
Design Patterns and Refactoring
Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi.
برای شما که علاقه دارید (عجله دارید!) تا امکانات C# 7.0 را همین الان امتحان کنید، قبل از اینکه نسخه نهایی آن منتشر شود، لینک زیر توضیح میدهد که چطور میتوانید در Visual Studio 2015 و یا Visual Studio '15' (نسخه بعدی) نسخه جدید زبان C# را امتحان کنید. با توجه به اینکه کامپایلر جدید این زبان (Roslyn) دیگر Open Source شده، شما میتوانید حتی آخرین نسخه موجود را امتحان کنید.
https://www.c-sharpcorner.com/article/how-to-compile-test-C-Sharp-7-features/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://www.c-sharpcorner.com/article/how-to-compile-test-C-Sharp-7-features/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
C-Sharpcorner
How To Compile & Test C# 7 Features
In this article you will learn how to compile & test C# 7 features.
Forwarded from فلسفه دیزاین
درسهایی درباره «دکمهها»، خالصترین نماینده یک طراحی
شاید تا حالا از این دید که دربارهش خواهیم گفت به دکمهها نگاه نکرده باشید.
دکمهها دوست داشتنی هستند. دکمهها باعث «اعمال تغییرات» میشوند، دکمهها شما رو به «مرحله بعدی» میبرن و باعث «انجام» کارها میشوند.
دکمهها بهترین نماینده زبان یک طراحی (Design Language) هستند و المانهایی که در اونها استفاده میشه، میتونه پایه بخشهای پیچیدهتر طراحی باشه.
دکمهها از سه بخش مهم رنگ، تایپوگرافی و آیکنوگرافی تشکیل شدند. این سه بخش میتونن پایه زبان طراحی و راهنمای بصری (Style Guide) باشن. دکمهها حتی بحث «فاصلهها» رو هم با موارد مثل Padding و Margin به چالش میکشند. بُعد طراحی رو با سایه زیرشون و حس طراحی رو با گوشههای گرد و یا تیزشون مشخص میکنند.
پس دکمهها یکی از مهمترین بخشهای یک طراحی هستند.
در این مقاله با Nathan Curtis، بنیانگذار موسسه تجربه کاربری Eight Shapes همراه میشیم تا ۱۲ درسی رو که ایشون درباره «دکمهها» در طراحی سیستمها آموختن، بخونیم.
https://medium.com/eightshapes-llc/buttons-in-design-systems-eac3acf7e23
#مفاهیم #دکمه #طراحی_سیستم #معرفی_مقاله #زبان_طراحی
@HamDesign هَم دیزاین
شاید تا حالا از این دید که دربارهش خواهیم گفت به دکمهها نگاه نکرده باشید.
دکمهها دوست داشتنی هستند. دکمهها باعث «اعمال تغییرات» میشوند، دکمهها شما رو به «مرحله بعدی» میبرن و باعث «انجام» کارها میشوند.
دکمهها بهترین نماینده زبان یک طراحی (Design Language) هستند و المانهایی که در اونها استفاده میشه، میتونه پایه بخشهای پیچیدهتر طراحی باشه.
دکمهها از سه بخش مهم رنگ، تایپوگرافی و آیکنوگرافی تشکیل شدند. این سه بخش میتونن پایه زبان طراحی و راهنمای بصری (Style Guide) باشن. دکمهها حتی بحث «فاصلهها» رو هم با موارد مثل Padding و Margin به چالش میکشند. بُعد طراحی رو با سایه زیرشون و حس طراحی رو با گوشههای گرد و یا تیزشون مشخص میکنند.
پس دکمهها یکی از مهمترین بخشهای یک طراحی هستند.
در این مقاله با Nathan Curtis، بنیانگذار موسسه تجربه کاربری Eight Shapes همراه میشیم تا ۱۲ درسی رو که ایشون درباره «دکمهها» در طراحی سیستمها آموختن، بخونیم.
https://medium.com/eightshapes-llc/buttons-in-design-systems-eac3acf7e23
#مفاهیم #دکمه #طراحی_سیستم #معرفی_مقاله #زبان_طراحی
@HamDesign هَم دیزاین
Medium
Buttons in Design Systems
12 Tips for Setting Up a System That Endures