Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Iran Agile
تجربه پیاده سازی اسکرام در شرکتهای دیجیتال مارکتینگ

آژانس بازاریابی دیجیتال فیش بت در تلاش بود تا با سرعت تغییر در چشم انداز دیجیتالی که روز به روز پیچیده تر می شود، خودش را منطبق نماید. درست زمانی که تیم متوجه شده بود که رویکرد قدیمی آنها در عملیات آژانس دیگر موثر نیست، آنها به Zen Ex Machina ، یک شرکت مشاوره چابک معرفی شدند. با اتخاذ رویکرد چابک به عملیات و ارائه خدمات، فیش بت اکنون قادر به پاسخگویی به تغییرات صنعت و ارائه کار معناداری است که نتایج با ارزش برای مشتریان به ارمغان می آورد.

https://www.agilealliance.org/resources/experience-reports/scrum-for-digital-marketing-control-the-chaos-and-deliver-value/

@iranagile
Forwarded from فلسفه دیزاین
اصول طراحی رابط کاربری مختص توسعه‌دهندگان!

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

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

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

معمولا اصول رابط کاربری در طراحی محصول به کار می‌روند اما در ادامه قصد داریم آن ها را از دید یک توسعه‌دهنده بررسی کنیم.

۱- یکپارچگی و هماهنگی
یکی از مواردی که معمولا در ابتدای بیشتر اصول روابط کاربری مشاهده می‌کنید، یکپارچگی و هماهنگی است. تمامی قسمت‌های یک پلتفرم باید شبیه به هم به نظر برسد. این مورد می‌تواند با تعریف پالت رنگی، تایپوگرافی و کامپوننت‌ها تا حد قابل قبولی حل شود.

۲- کارایی بیشتر
بیشتر اوقات، کارایی یک سیستم از طریق زمانی که کاربر برای انجام یک کار (به همراه شمارش کلیک‌ها) صرف می‌کند، محاسبه می‌شود. اگر لایه‌های یک سیستم به خوبی تعریف شده باشند، کاربر می‌تواند به سرعت به هدف خود برسد. به عنوان یک توسعه‌دهنده رابط کاربری، چندکار در رابطه با این مورد می‌توانید انجام دهید.

۳- مشخص‌بودن اقدامات کاربر و وضعیت سیستم
به همان اندازه که نشان‌دادن اقداماتی که کاربر می‌تواند در این وضعیت از سیستم انجام دهد یا قبلا انجام داده، ضروری است. نشان دادن وضعیت سیستم نیز به کاربر کمک می‌کند تا به نتایج اقدامات خود شک نکند.

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

http://bit.ly/dxgn727

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

نویسنده: محمدرضا وفائی

#طراحی‌ #توسعه_دهنده #محصول #اصول #فرانت_اند #رابط_کاربری

@Dexign فلسفه دیزاین

_______
توسعه برنامه های Cross Platform

اگر قصد پیاده سازی برنامه Cross Platform در دات نت را دارید می توانید از Xamarin استفاده کنید.

اما قبل از شروع، احتمالا به دنبال این هستید که برای این کار چه راهی مناسب‌تر است.
در این مقاله بین سه گزینه Xamarin, React Native, Ionic بررسی هایی انجام شده است و شما می‌توانید با توجه به شرایط خود، شرایط تیم، دانش برنامه نویسی خودتان و ... گزینه مورد نظر را انتخاب کنید.

گزینه های دیگری نیز وجود دارد که با توجه به نحوه مقایسه سه مورد ذکر شده در مقاله جاری، حتی می‌توانید آن‌ها را نیز با یکدیگر مقایسه کنید.


در نهایت اگر تصمیمتان Xamarin بود می‌توانید از این کتاب رایگان که توسط خود مایکروسافت ارائه شده است استفاده کنید.
مایکروسافت این کتاب را به صورت خلاصه و با نوشتاری سلیس و روان ارائه کرده است.

در نهایت برای بالا بردن کیفیت پروژه‌های Xamarin خود می‌توانید از سری آموزش‌های توسعه برنامه‌های Cross Platform با Xamarin Forms & Bit Framework استفاده کنید.

#زامارین #xamarin

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
تولید تگ های SEO در ASPNET Core با کتابخانه SeoTags

تگ های زیاد و متنوعی برای بهبود SEO سایت وجود دارند. از انواع meta و link گرفته تا تگ های تنظیم Twitter Card و Open Graph تا JSON-LD و Microdata برای Structred Data تا SiteMap و...
هرکدوم هم مسلما مقادیر خاص خودشون رو میپذیرن و بسته به شرایط و نوع محتوا متفاوت هستند.

کتابخانه SeoTags تمامی تگ های مهم و کاربردی رو براحتی برای وبسایت ASPNET Core ایی شما میسازه و حالت ها و تگ های زیادی هم پشتیبانی میکنه.

اینو کتابخونه رو تازگی نوشتم (در جهت راه اندازی سایت DotNetZoom) و به زودی تکمیل ترش هم میکنم.
شما هم اگه دوست داشتین توش مشارکت کنین، issue بزنین و pull request بفرستین

طریقه استفاده و نمونه خروجی تگ ها رو میتونین توی ریپازیتوری مشاهده کنین
https://github.com/mjebrahimi/SeoTags
___________________
@DotNetZoom
👍1
Forwarded from فلسفه دیزاین
تعریف مسئله به روش نردبان ذهنی

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

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

این فریم‌وُرک، به «نردبان ذهنی یا انتزاعی» معروف است. به طور خلاصه می‌گوید که مشکل را در میان نردبان بگذارید و حالا دو سؤال بپرسید. چرا (why) و چطور (How).
وقتی بپرسید چرا، از نردبان بالا می‌روید و طرح مسئله به هرچه مفهومی‌تر و انتزاعی‌تر شدن نزدیک می‌شود. وقتی بپرسید چطور یا چگونه، با ایده‌های عمومی‌تر و واقعی‌تر مواجه می‌شوید.

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

برای اینکه دقیقا متوجه شوید که این روش چطور کار می‌کند، مقالات زیر را پیشنهاد می‌کنم که با مثال‌های عینی و شفاف این مدل ذهنی را شرح می‌دهند:

http://bit.ly/dxgn742-1

http://bit.ly/dxgn742-2

http://bit.ly/dxgn742-3

(زمان حدودی مطالعه‌ی مقاله‌ی اول‌: ۸ دقیقه
،مقاله‌ی دوم: ۶ دقیقه
و مقاله‌ی سوم: ۷ دقیقه)

نویسنده: حسین میرزاده

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #نردبان_ذهنی

@Dexign فلسفه دیزاین

______
Forwarded from Iran Agile
چرا کامیونیتی‌های چابک دچار کج روی شدند؟

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

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

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

چرا کامیونیتی‌های چابک از تجربه گرایی فاصله گرفتند؟

آنچه به ویژه در اینجا آشکار می شود این است که جامعه چابک ظاهراً همه راجع به "تجربه گرایی" است. اما آیا ما واقعا تجربه گرا هستیم؟ ویکی پدیا تجربه گرایی را چنین تعریف می کند:
"تجربه گرایی […] بر شواهد تأکید می کند، به ویژه که در آزمایشات کشف شده باشند. این یک بخش اساسی از روش علمی است که همه فرضیه‌ها و نظریه‌ها باید در برابر مشاهدات جهان طبیعی آزمایش شوند تا اینکه فقط به شهود یا مکاشفه پیشینی استوار باشند."
تجربه گرایی به ما امکان می دهد تا دانش قابل اعتمادی در مورد جهان ایجاد کنیم و عواقب اقدامات را درک کنیم. دانش قابل اعتماد مستلزم شواهد معتبری است که متناسب با ادعا باشد. با اینکه احساس شهود و ترجیحات شخصی مطمئناً ارزش خود را دارند ، منابع معتبری برای شواهد نیستند. کارل ساگان فیزیکدان این طور خلاصه کرد که "ادعاهای خارق العاده به مدارک خارق‌العاده نیاز دارند". ساگان همچنین از ما می‌خواهد که نسبت به ادعاهایی که فاقد شواهد متناسب هستند تردید داشته باشیم و کسانی را که فاقد چنین شواهدی ارائه می دهند به چالش بکشیم. از همه مهمتر ، وجود شواهد عینی همچنین زمینه ما را حرفه ای تر می کند زیرا بحث‌های بهتری برای متقاعد کردن افراد بدبین ارائه می دهد.

چه چیزی شواهد خوبی ارائه می دهد؟

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

نوشته کامل در لینک زیر 👇

https://medium.com/the-liberators/why-doesnt-the-agile-community-practice-empiricism-12082e48ffba

@iranagile
Google firebase

گوگل فایربیس، سرویس پشتیبان گوگل است که امکانات فوق العاده‌ای را در اختیار توسعه دهندگان iOS ,android و وب اپلیکیشن قرار می‌دهد.
امکانات و ابزار های متفاوت و قدرتمند فایربیس در این شش بخش قرار می‌گیرند:

• Cloud firestore
ذخیره دیتا در دیتابیسی که در اختیار می‌گذارد و همگام سازی آن در مقیاس جهانی.

• Authentication
سرویس احراز هویت قدرتمند با امکانات متنوع.

• Crashlytics
پیگیری و رفع هر چه سریعتر کرش برنامه.

• Analytics
تجزیه و تحلیل عملکردهای متفاوت برنامه برای بهبود قسمت‌هایی که به پرفورمنس برنامه کمک می‌کند.

• Remote Config
کنترل و بهبود برنامه‌ی خود به صورت ریموت، بروزرسانی برنامه بدون نیاز به بازنشر دوباره.

• Cloud Messaging
ارسال اعلانات به پلتفرم‌هایی که از برنامه شما استفاده می‌کنند.

در انگولار با نصب پکیج fireangular و firebase تمام سرویس‌های ذکر شده قابل استفاده است.

برای آشنایی بیشتر با فایربیس می‌توانید به لینک زیر مراجعه کنید:

https://firebase.google.com/products/firestore

برای نحوه استفاده و نصب فایربیس در انگولار نیز می‌توانید به لینک زیر مراجعه کنید:

https://github.com/angular/angularfire



⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حسن_یوسفی (لینکدین)

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

________
👍1
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
بهبود SEO سایت های AspNet Core توسط کتابخانه SeoTags به کمک قابلیت Structred Data و JSON-LD

قابلیت Structured Data یکی از مباحث پیشرفته SEO هست که با تعریف ساختار صفحه به موتور های جستجو کمک میکنه محتوای صفحه شما رو بهتر متوجه بشن و نمایش بدن. نمونه نمایش نتایج در صفحه سرچ گوگل این موضوع رو میتونین از این لینک مشاهده کنین. همانطور که میبینین بعضی موارد به صورت rich result نمایش داده میشوند.
گوگل داکیومنت کاملی در مورد پیاده سازی Structured Data داره که از این لینک میتونین مشاهده کنین.

پیاده سازی این قابلیت توسط یکی از سه روش زیر انجام میشه
1- روش JSON-LD
2- روش Microdata
3- روش RDFa

روش اول یعنی JSON-LD روش پیشنهادی گوگل هست و در اون محتوای صفحه به صورت json در قالب استاندارد Schema.org درون یک تگ noscript از نوع application/ld+json تعریف میشه. که در این لینک میتونین نمونه پیاده سازیش رو برای یک product مشاهده کنین.
در روش های Microdata و RDFa هم محتوای صفحه در قالب attribute هایی بر روی تگ های html نشانه گذاری میشن.
داکیومنت گوگل یک قسمت از نحوه پیاده سازی این مورد برای مثال های پرکاربرد از جمله Article و Product و Book و ... نیز ارائه کرده.

حالا کتابخانه SeoTags از JSON-LD هم پشتیبانی میکنه و علاوه بر تولید تمام تگ های SEO برای سایت شما، محتوای JSON-LD رو هم خروجی میده.
داکیومنت استفاده از این کتابخانه برای تولید تگ های meta و link و... در اینجا مشاهده کنید.
و نمونه استفاده از قابلیت JSON-LD رو هم در اینجا و اینجا مشاهده کنید.

https://mjebrahimi.github.io/SeoTags/
__________________
@DotNetZoom
Forwarded from فلسفه دیزاین
چرا از قبول و درک تغییر گریزانیم؟

چندوقت پیش بود قسمتی از پادکست Moniaz گوش می‌کردم که درباره ذهن انسان و علاقه‌اش به تغییر نکردن صحبت می‌کرد.

تغییر، وقت و انرژی مصرف می‌کند و طبیعتا ذهن ما تمام تلاشش را می‌کند تا حتی ایده تغییرات احتمالی را در هنگام شکل‌گیری از بین ببرد.

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

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

دیزاین، سوای مسائل تکنیکی‌اش، یک مقوله احساسی است. شما به عنوان یک دیزاینر مستقیما با احساسات کاربر سروکار دارید. اینکه چه حسی به شما و برند شما دارد. این حس از شمایل لوگو در حال شکل‌گیری است تا میزان گردی باتن‌های رابط کاربری.

در این مقاله، Kushaan Shah به واکاوی دلایلی می‌پردازد که چرا مردم از ری‌برندها متنفرند؟

پیشنهاد می‌کنم این مقاله جذاب رو از دست ندهید.

http://bit.ly/dxgn746

(زمان حدودی مطالعه: ۱۲ دقیقه)

نویسنده: آرش اصغری

#دیزاین #چالش

@Dexign فلسفه دیزاین

______
Forwarded from Iran Agile
تفکر سیستمی برای توسعه دهندگان نرم‌افزار

چند روز پیش، آقای کنت‌بک(مبدع اکس پی ) یک ارایه خیلی جذاب در مورد تفکر سیستمی ویژه برنامه نویس‌ها داشت.

از این لحاظ این ارایه جذاب هست که هم خیلی ساده توضیح میدن، و هم اینکه برای نرم‌افزاری‌هاست و اینکه خود ایشون از دنیای چابک است. مثلاً اینکه چرا خیلی از تغییرات ما در دنیای نرم‌افزار مثل نوشتن تست اتوماتیک اتفاق نمی‌افتند

توصیه می‌شود با حوصله ببینید حتی اگر فنی نیستید، البته لازم نیست فنی باشید 👇👇👇

https://youtu.be/z8bL_V9in9o

@iranagile
Forwarded from فلسفه دیزاین
وارونگی؛ زاویه‌ی دیگر مسئله

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

بهترین سؤالی که می‌توانید از خود بپرسید تا بدانید که آیا این روش می‌تواند به شما کمک کند اینست: آیا به دنبال یک راه‌حل ایده‌آلی هستیم؟

حالا می‌توانید افکار خود را درباره‌ی مسئله و یا راه‌حل معکوس کنید.

۱. از خودتان بپرسید که بدترین تصمیم یا راه‌حل برای این مسئله چیست؟
۲. حال از خود بپرسید که چرا این بدترین تصمیم است؟ علت‌ها را یادداشت کنید.
۳. با توجه به علت‌ها و راه‌حل بدی که یادداشت کردید. تصمیم یا راه‌حل درست را ارائه بدهید. (از خود بپرسید که چطور می‌شود ازین راه‌حل بد جلوگیری کرد.)

وارونگی به شما کمک می‌کند که نتایج بد را ببینید و از وقوع آن‌ها جلوگیری کنید.

سؤالاتی که می‌تواند شما را در این تکنیک کمک کند می‌تواند موارد زیر باشد:

- چطور می‌تواند این تصمیم غلط اتفاق بیافتد؟
- عکس این قضیه چه خواهد بود؟
- چه چیزهایی باعث بدترین راه‌حل برای این موضوع شده است؟

معمولا مدیران پروژه از روشی به نام Pre-mortem (پیش از مرگ) استفاده می‌کنند. افراد تیم را جمع می‌کنند و فرض می‌کنند به اتمام زمان پروژه رسیده‌اند و پروژه شکست خورده است. آن‌ها این سناریو را با سؤالاتی از قبیل «چه چیزی اشتباه پیش رفت؟»، «چه اشتباهاتی انجام دادیم؟» و «چطور شد که این پروژه شکست خورد» بررسی می‌کنند.
این کار باعث می‌شود که افراد تیم زودتر از موعد مشکلات احتمالی را ببینند و برای آن‌ها آماده شوند.

مقاله‌ی زیر را مطالعه کنید تا با دیگر مثال‌های این روش حل مسئله آشنا شوید:

http://bit.ly/dxgn748

(زمان حدودی مطالعه‌ مقاله‌‌: ۹ دقیقه)

نویسنده: حسین میرزاده

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #وارونگی #معکوس_سازی

@Dexign فلسفه دیزاین

______
Forwarded from Iran Agile
داستان تحول چابک بوش آلمان

بوش با هر استانداردی شرکت عظیمی محسوب می شود. این شرکت مهندسی و فناوری آلمانی حدود 400000 کارمند دارد و محصولات آن - آگاهانه و ناآگاهانه - بخشی از زندگی روزمره ما هستند.

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

در لینک زیر می‌توانید داستان این سفر پنج ساله بوش را مطالعه کنید 👇👇👇

https://corporate-rebels.com/transforming-bosch


@iranagile
Forwarded from کدهک
برنامه نویسی برداری در دات نت و آشنایی با SIMD

https://youtu.be/s9AKgcw6Gf0
1
بررسی خطاها و هشدارهای موجود در HTML سایت

زمانی که کد HTML ای نوشته می‌شود، خود برنامه‌نویس باید دقت کند که تمامی Best Practis های موجود را رعایت کرده باشد.
مثلا خطایی مبنی بر قرار دادن اتربیوت alt در تگ‌های img مشاهده نکنیم و این امر نیاز به دقت بالا در رعایت این موارد دارد.

یک راه حل استفاده از W3C Markap Validation Service است.

شما در این سایت می‌توانید فایل HTML خود را آپلود کنید یا لینک سایت را قرار دهید یا اینکه کد HTML خود را به صورت مستقیم در کادری قرار دهید. سپس این سایت بررسی‌های لازم را انجام داده و هشدار (warning) و خطاهای (error) لازم را به برنامه‌نویس نشان می‌دهد.

همینطور برای کد های CSS نیز سایت‌هایی برای Validation وجود دارند که از بین آنها می‌توان W3C Validation CSS را نام برد.

#HTML

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
Forwarded from فلسفه دیزاین
درخت موضوعی؛ مسائل ساختارمند و راه‌حل‌های اصولی

درخت موضوعی در واقع نقشه‌ی مشکلات است. به شما یک روش واضح و منظم را برای بررسی مسئله‌ای می‌دهد که در پی حل آن هستید. به شما کمک می‌کند که یک مشکل بزرگ را به قطعات کوچکتر و قابل مدیریت‌تر خرد کنید. و قسمت‌هایی از مسئله را اولویت‌بندی کنید.

دو نوع درخت موضوعی وجود دارد:
۱- درخت مسئله: با جواب به پرسش «چرا» رشد می‌کند.
۲- درخت راه‌حل: با جواب به پرسش «چگونه» رشد می‌کند.

چگونه یک درخت موضوعی را رشد دهیم؟

- درخت مسئله
یک درخت مسئله‌ی خوب باید کل مشکل را پوشش دهد. باید دقیق باشد. در اینجا به برخی از اصول اساسی برای ایجاد یک درخت مسئله اشاره می‌کنیم:

۱- مسائل را به شاخه یا دسته‌بندی‌های جداگانه تقسیم کنید. (نکته‌ی مهم: این شاخه‌ها باید مقابل هم قرار بگیرند یعنی هم‌پوشانی‌ای با یکدیگر نداشته باشند و نیز همدیگر را تکمیل کنند)
۲- زیاد وارد جزئیات نشوید. روی شاخه‌های بزرگتر که مسئله را تشکیل می‌دهند تمرکز کنید.
۳- روی قسمت‌هایی از مسئله تمرکز کنید که بیشترین تأثیرگذاری را دارند. (مهم است که به جای فرضیه‌های شما، مبتنی بر داده‌ها باشد)

- درخت راه‌حل
هنگامی که برخی از قسمتهای خاص مشکل را که می‌خواهید روی آنها تمرکز کنید، جدا کردید؛ می‌توانید با ایجاد یک درخت راه‌حل، مسئله را جلو ببرید:

۱- قسمتی از مسئله را که می‌خواهید روی آن تمرکز کنید را جدا کنید و از خود بپرسید که چگونه می‌شود آن را حل کرد یا بهبود داد؟
۲- شاخه‌های بالقوه‌ی راه‌حل‌های خود را رشد بدهید.
۳- ایده‌های خود را در هر شاخه تولید کنید.

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

برای فهم بیشتر مطلب و همینطور بررسی نمونه‌های موردی این تکنیک حل مسئله، شما را به خواندن مقاله‌ی زیر دعوت می‌کنم. در نظر داشته باشید که، درخت موضوعی به طور خلاصه در بالا توضیح داده شد، مقاله‌ی پیش‌رو یک راهنمای جامع و کامل است. می‌توانید از فهرست آن در اول صفحه استفاده کنید یا اسکرول کنید و هر جا را که دوست داشتید مطالعه کنید، پیشنهاد من این است که فصل چهارم یعنی Issue Tree Examples را مطالعه کنید تا این روش برای شما بیشتر جا بیافتد:

http://bit.ly/dxgn752

(زمان حدودی مطالعه‌ کل راهنما‌‌: ۷۰ دقیقه)

نویسنده: حسین میرزاده

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #درخت_موضوعی #نقشه_ذهنی #راه_حل

@Dexign فلسفه دیزاین

____
Forwarded from Iran Agile
✍️ مراقب تله واعظ شدن بعنوان یک اسکرام‌مستر باشید

یکی از وجوه لازم برای هر اسکرام‌مستر معلم بودم و توانایی انتقال مفاهیم و اصول اسکرام و چابک به تیم و سازمان است، اما در همان حال اسکرام‌مستر میتواند در تله واعظ بودن بیفتد. واعظی که فقط موعظه می‌کند.
در این وضعیت قوانین اسکرام را بدون در نظر گرفتن کانتکست تیم، ویژگی‌های منحصر به فرد محیط و دینامیک سازمان، شروع به تبلیغ می‌کند. قوانین اسکرام به عنوان حقایقی خشک ارائه می‌شوند که باید رعایت شوند.
تشخیص اسکرام مستر به عنوان واعظ بسیار آسان است زیرا هر مکالمه ای در مورد اسکرام در سطح تئوری و نظری باقی می‌ماند. اغلب اوقات حتی مکالمه طولانی هم نیست، زیرا تنها استدلال این است "زیرا در راهنمای اسکرام است ..."
چرا یک تیم باید از هدف محصول استفاده کند؟
زیرا اخیراً به راهنمای اسکرام اضافه شده است.
چرا دیگر نمی‌توانیم درباره تیم‌های توسعه صحبت کنیم؟ زیرا در نسخه جدید راهنمای اسکرام حذف شده است.
چرا باید "خود سازماندهی" را به "خودمدیریتی" در همه جا تغییر دهیم؟ زیرا Scrum Guide عبارت را تغییر داده است.

به نظر می رسد اسکرام مستر به عنوان واعظ دارای سه ویژگی مشخص است:

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

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

بیشتر بخوانید 👇👇

https://medium.com/the-liberators/when-the-scrum-master-as-a-teacher-becomes-a-preacher-98810c545752

@iranagile
کنفرانس NET. Conf هر سال خبرهای هیجان‌انگیزی داره. امسال هم NET. خبر های خوب و جذابی داره که قراره ۱۸ تا ۲۰ آبان برگزار بشه.

ما در «کانال فلسفه نرم‌افزار» به همراه بچه‌های «ملک‌رادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم.

این دورهمی به صورت Watch party و روی Microsoft Teams برگزار می‌شود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال می‌شیم با ما همراه بشید.

برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.

من (مهران داودی) هم به همراه بچه‌های این کانال هم تو این دورهمی هستیم.
Forwarded from فلسفه دیزاین
چطور لندینگ پیج خود را خراب کنیم؟

همانطور که از تیتر این مقاله پیداست، در آن به روش‌هایی می‌پردازیم که شما نباید آن را در زمینه لندینگ‌پیج دنبال کنید.

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

هدف‌گذاری‌های اشتباه معمولا بازدید‌های وبسایت را کم کرده و در نتیجه این اتفاق به شکست لندینگ می‌انجامد.

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

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

http://bit.ly/dxgn757

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

نویسنده: آرش اصغری

#تجربه_کاربری #لندینگ

@dexign فلسفه دیزاین

______
همه چیز در مورد NET 6.

دیروز نسخه رسمی NET 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما می‌توانید با نصب ویژوال استودیو همزمان NET 6. را هم نصب کنید.

اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET 6. افتاده و آپدیت ها چه چیز هایی هستند؟

بررسی فیچر های جدیدی که با NET 6. ارائه شده:

1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
1
Media is too big
VIEW IN TELEGRAM
حضور Scott Hunter و Jeff Frtiz از مایکروسافت در دورهمی بچه‌های ایرانی NET Conf 2021

تصمیم جذابی بود...
امسال بچه‌هایی از تیم‌های MelkRadar و CS Internship و کانال Software Philosophy تصمیم گرفتند این کنفرانس رو با هم ببینند.

و نتیجه هیجان‌انگیز بود.

توییت‌ها و سوالات بچه‌ها که با هشتگ #cs_internship پرسیده می‌شد مدام روی بورد کنفرانس می‌رفت که توجه برگزار کنندگان رو جلب کرد. در نهایت بچه‌ها از Jeff Frtiz خواستند یه سلفی با هم بگیرند. جف هم پیام داد که لینک جلسه تیمزتون رو برام بفرستید و اومد.

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

در نهایت عکس سلفی گرفته شده توی توییتر رفت و تو خود کنفرانس NET Conf بچه‌ها رو نشون دادن :)

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

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


___
کتابخانه RXJS (Reactive Extensions for JavaScript)

کتابخانه RXJS کتابخانه‌ای برای ایجاد برنامه‌های event-based و asynchronous با استفاده از دنباله های observable است.

توضیح observable با استفاده از مثال :

[فرض کنید انواعی از خبرها وجود داره که چاپخانه‌ها باید در قالب روزنامه برای شما ارسال کنند و شما فقط روزنامه‌هایی را دریافت می‌کنید که درخواست کرده باشید.
خبرها همان دیتا هستند و انواع دیتا با استفاده از observable مدیریت می‌شود، تنها دیتا بخش‌هایی را دریافت خواهید کرد که subscribe کرده باشید.
برای مدیریت یک پاسخ HTTP از promise و برای مدیریت چند پاسخ طی زمان از observable استفاده می‌شود.]

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

اطلاعات بیشتر و نحوه استفاده از این کتابخانه :

https://angular.io/guide/rx-library



⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حسن_یوسفی (لینکدین)

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

________
👍2