کتاب های برچسب software-engineering
تاریخ: ۲۲:۱۶:۳۷ ۱۳۹۹/۷/۲ چهارشنبه
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding | software engineering |

تعداد کمی کتاب در رشته کامپیوتر به اندازه کتاب Peopleware در مدیریت نرم افزار تأثیری عمیق داشته اند. دید منحصر به فرد این کتاب پرفروش قدیمی این است که عمده مسائل مربوط به توسعه نرم افزار، انسانی است و نه فنی. آنها مسائل ساده ای نیستند؛ اما آنها را حل کنید و شانس موفقیت خود را به حداکثر برساند.

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

تعداد بازدید: ۱۸۰
دیدگاه ها: ۰
تاریخ: ۲۲:۴۱:۹ ۱۳۹۹/۷/۱ سه شنبه
توسط: MotoMan
امتیاز: ۱

تا حالا شده که زمان زیادی را برای کد نویسی یک الگوریتم اشتباه هدر داده باشید؟ از ساختمان داده ای استفاده کنید که بسیار پیچیده باشد؟ برنامه ای را تست کرده باشید اما یک مشکل واضح را از قلم انداخته باشید؟ یک روز را صرف جستجوی باگی کرده باشید که باید در عرض پنج دقیقه آن را پیدا می‌کردید؟ لازم است که برنامه سه برابر سریعتر اجرا شود و از حافظه‌ی کمتری استفاده کند؟ تلاش کرده اید که برنامه ای را از یک workstation به یک PC منتقل کنید یا بالعکس؟ سعی کرده اید تغییر ناچیزی در برنامه شخص دیگری ایجاد کنید؟ دوباره برنامه ای را باز نویسی کرده اید زیرا نمی‌توانستید آن را درک کنید؟

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

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

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

تعداد بازدید: ۲۰۹
دیدگاه ها: ۰
تاریخ: ۲۳:۱۱:۳۹ ۱۳۹۹/۶/۱۱ سه شنبه
توسط: MotoMan
امتیاز: ۰
برچسب ها: software engineering |

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

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

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

تعداد بازدید: ۳۴۶
دیدگاه ها: ۰
تاریخ: ۲۱:۵۶:۱۹ ۱۳۹۹/۶/۵ چهارشنبه
توسط: MotoMan
امتیاز: ۰
برچسب ها: software engineering |

تنها یک شکست نرم افزاری چشمگیر، می‌تواند میلیون‌ها دلار برای یک شرکت هزینه در بر داشته باشد، اما با تغییراتی ساده در طراحی و معماری می‌توان از آن جلوگیری کرد. ویرایش جدید این کتاب، نحوه‌ی ایجاد سیستم هایی که طولانی‌تر و با خرابی‌های کمتر کار کنند و در هنگام رخ دادن اتفاق‌های بد، بهتر ترمیم شوند را به شما نشان می‌دهد. مطالب جدید پوشش داده در این ویرایش شامل DevOps، میکرو سرویس‌ها و معماری cloud-native است. ضد الگو‌های پایداری رشد کرده اند تا مشکلات ساختاری در سیستم‌های مقیاس بزرگ را در بر گیرند. این کتاب یک راهنمای عملی ضروری برای مهندسی سیستم‌های عملیاتی است.

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

تعداد بازدید: ۴۰۰
دیدگاه ها: ۰
تاریخ: ۲۰:۲۱:۵۳ ۱۳۹۹/۵/۱۶ پنج شنبه
توسط: MotoMan
امتیاز: ۲

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

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

ویرایش سوم کتاب Applying UML and Patterns، کتاب مقدماتی شماره یک دانشگاهی و تجاری برای «تفکر در اشیا» و استفاده از آن در تحلیل و طراحی شی گرا دنیای واقعی است. Craig Larman با تکیه بر دو نسخه قبلی بسیار تحسین شده، این کتاب را به روز کرده است تا کاملاً استاندارد جدید UML 2 را منعکس کند  و به شما در تسلط بر هنر طراحی شی و شیوه‌های مدل سازی چابک ماهرانه، تکرار شونده و با تاثیر بالا کمک کند.

توسعه دهندگان و دانشجویان، تجزیه و تحلیل و طراحی شی گرا (OOA/D) را از طریق سه تکرار از دو مورد مطالعاتی منسجم و از ابتدا تا پایان یاد می‌گیرند. این موارد مطالعاتی به تدریج مهارت‌های کلیدی، اصول و الگوهای مهم OO، نماد UML و بهترین شیوه‌ها را معرفی می‌کنند. شما فقط نمودارهای UML را یاد نخواهید گرفت؛ بلکه یاد می‌گیرید که چگونه UML را در زمینه توسعه نرم افزار شی گرا بکار بگیرید. با استفاده از تجربه بی نظیر خود به عنوان مربی و مشاور، Larman به شما در درک نیازمندی‌های تکاملی و موارد استفاده، مدل سازی اشیا دامنه، طراحی مسئولیت محور، طراحی OO اساسی، معماری‌های لایه ای، الگو‌های طراحی Gang of Four، GRASP، شیوه‌های تکرار شونده، رویکردی چابک برای (Unified Process (UP و موارد دیگر کمک خواهد کرد.

 

تعداد بازدید: ۴۴۴
دیدگاه ها: ۰
تاریخ: ۲۲:۴۵:۱۹ ۱۳۹۹/۴/۱۴ شنبه
توسط: MotoMan
امتیاز: ۲
برچسب ها: software engineering |

امروزه مهندسان نرم افزار نه تنها باید بدانند که چگونه به طور مؤثری برنامه نویسی کنند بلکه همچنین چگونه می‌توانند شیوه‌های مهندسی مناسبی را توسعه دهند تا کد‌های خود را پایدار و سالم کنند را نیز باید بدانند. کتاب مهندسی نرم افزار در گوگل، بر تفاوت بین برنامه نویسی و مهندسی نرم افزار تأکید دارد.

مهندسان نرم افزار چگونه می‌توانند پایگاه کد زنده ای را مدیریت کنند که در طول عمرش تکامل می‌یابد و به تغییرات نیازمندی‌ها و درخواست‌ها پاسخ می‌دهد؟ مهندسان نرم افزار Titus Winters و Hyrum Wright، به همراه نویسنده فنی Tom Manshreck، بر اساس تجربه خود در گوگل نگاه صریح و روشنگری در مورد چگونگی ساخت و نگهداری نرم افزارها توسط متخصصان برجسته دنیا ارائه می‌دهند. کتاب Software Engineering at Google، فرهنگ مهندسی، فرآیند‌ها و ابزار‌های منحصر به فرد گوگل و چگونگی مشارکت این جنبه‌ها بر اثربخشی یک سازمان مهندسی را بررسی می‌کند.

تعداد بازدید: ۵۹۸
دیدگاه ها: ۰
تاریخ: ۱۴:۱۲:۵۲ ۱۳۹۹/۴/۶ جمعه
توسط: MotoMan
امتیاز: ۱
برچسب ها: software engineering |

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

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

کتاب Specification by Example، چکیده ای مفید از تجربه تیم‌های برتر در سراسر جهان و راه‌های مؤثر در مشخص کردن، تست و تحویل نرم افزار در دوره‌های تحویل کوتاه و تکرار شونده است. موارد مطالعاتی در این کتاب از راه اندازی استارتاپ‌های کوچک وب تا مؤسسات مالی بزرگ را در بر دارد و در بسیاری از فرآیند‌ها از جمله XP ، Scrum و Kanban کار می‌کنند.

تعداد بازدید: ۴۷۲
دیدگاه ها: ۰
تاریخ: ۲۱:۳۲:۴۷ ۱۳۹۹/۳/۱۵ پنج شنبه
توسط: MotoMan
امتیاز: ۳

نوشتن نرم افزاری که نیازهای فوری کاربران خود را برآورده سازد آسان است، اما توسعه و نگهداری آن دشوار است. چنین نرم افزاری برای شرکتهایی که تلاش می‌کنند رقابتی باقی بمانند، بار سنگینی است. در دوره ویدیویی SOLID Principles for C# Developers موسسه Pluralsight که توسط Steve Smith تدریس شده است، شما پنج اصل اساسی از طراحی شی گرا را یاد خواهید گرفت که نرم افزار شما را loosely coupled، تست پذیر و قابل نگهداری نگه می‌دارد.

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

تعداد بازدید: ۹۲۶
دیدگاه ها: ۰
تاریخ: ۷:۱۵:۲۸ ۱۳۹۹/۲/۱۵ دوشنبه
توسط: MotoMan
امتیاز: ۱
برچسب ها: Design Patterns | software engineering |

بررسی‌های حقوق و دستمزد در سرتاسر جهان، معمولا معمار نرم افزار را در بین 10 شغل برتر قرار می‌دهند، اما هنوز هم هیچ راهنمای واقعی برای کمک به توسعه دهندگان برای تبدیل شدن به معمار نرم افزار وجود ندارد؛ البته تا به حال. این کتاب، برای اولین بار بررسی جامعی از جنبه‌های مختلف معماری نرم افزار را ارائه می‌دهد. در کتاب “Fundamentals of Software Architecture: An Engineering Approach”، مشخصه‌های معماری، الگو‌های معماری، تعیین کامپوننت، ارائه و به تصویر کشیدن معماری، معماری تکاملی و بسیاری موضوعات دیگر مورد بررسی قرار گرفته اند.

نویسندگان این کتاب به نام‌های Mark Richards و Neal Ford، متخصصانی هستند که سال‌ها کلاس‌های معماری نرم افزار را به صورت حرفه ای تدریس کرده اند و بر روی اصول معماری که در تمامی stack‌های فناوری کاربرد دارند تمرکز داشته اند. شما با در نظر گرفتن تمام نوآوری‌های دهه گذشته، معماری نرم افزار را به شکلی مدرن بررسی خواهید کرد.

تعداد بازدید: ۱۱۱۸
دیدگاه ها: ۱
تاریخ: ۱۵:۱۰:۱۰ ۱۳۹۹/۲/۵ جمعه
توسط: MotoMan
امتیاز: ۱

دوره ویدیویی Clean Architecture: Patterns, Practices, and Principles موسسه Pluralsight که توسط Matthew Renze تدریس شده است، به شما کمک می‌کند تا یاد بگیرید که چگونه متخصصان نرم افزار با استفاده از رویکردی مدرن برای معماری نرم افزار به نام معماری تمیز، معماری خودشان را تمیز نگه می‌دارند و همچنین چیز هایی از قبیل معماری دامنه محور، لایه‌های برنامه، CQRS (Command-Query Responsibility Separation)، event sourcing، functional cohesion و bounded context را پوشش می‌دهد.  علاوه بر این، شما از این روش‌ها برای جایگزینی معماری منسوخ شده سه لایه پایگاه داده محور که دهه‌ها مورد استفاده قرار گرفته است، استفاده خواهید کرد. مهم‌تر از همه، شما خواهید دید که چگونه این روش‌ها وقتی که ترکیب می‌شوند، یک معماری ساده، قابل فهم، انعطاف پذیر، قابل تست کردن و قابل نگهداری را درست می‌کنند.

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

تعداد بازدید: ۱۳۲۱
دیدگاه ها: ۰
تاریخ: ۱۵:۳۵:۴۵ ۱۳۹۹/۲/۴ پنج شنبه
توسط: MotoMan
امتیاز: ۴

دوره ویدیویی Modern Software Architecture: Domain Models, CQRS, and Event Sourcing موسسه Pluralsight که توسط Dino Esposito تدریس شده است، الگو‌های تجزیه و تحلیل DDD که در یافتن معماری سطح بالا حوزه کسب و کار مفید هستند را پوشش می‌دهد. در این دوره، معماران و توسعه دهندگان با جزئیات پیاده سازی الگوهایی مانندDomain Model ، CQRS و Event Sourcing آشنا می‌شوند.

تعداد بازدید: ۱۳۸۷
دیدگاه ها: ۰
تاریخ: ۱۸:۵:۹ ۱۳۹۸/۱۲/۲۳ جمعه
توسط: MotoMan
امتیاز: ۰

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

کتاب Hands-On Design Patterns with Java، با مقدمه ای بر زبان مدل سازی یکپارچه (UML) شروع می‌شود و به کمک مثال‌های مفصل به نمودار‌های کلاس و شی می‌پردازد. شما مفاهیم و رویکردهای برنامه نویسی شی گرا (OOP) و الگوهای طراحی OOP را برای ساختن برنامه‌های قوی مطالعه خواهید کرد. همچنین، شما دسته بندی‌های الگوهای طراحی GOF مانند رفتاری، ایجاد و ساختاری را بررسی می‌کنید که به شما در بهبود خوانایی کد کمک می‌کند و استفاده مجدد از نرم افزار را در مقیاس بزرگ امکان پذیر می‌کند. همچنین شما نحوه کار موثر با معماری‌های میکرو سرویس‌ها و serverless را با استفاده از الگوهای طراحی cloud را برسی خواهید کرد که هر کدام از آن‌ها به طور مفصل و همراه با راه حل‌های دنیای واقعی توضیح داده شده اند.

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

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

تعداد بازدید: ۷۶۵
دیدگاه ها: ۰
تاریخ: ۲۱:۷:۴۸ ۱۳۹۸/۱۲/۲۲ پنج شنبه
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding | software engineering |

توسعه دهندگان جدی می‌دانند که کد همیشه می‌تواند بهبود یابد. با هر بار تکرار، بهینه سازی هایی کوچک و بزرگ انجام می‌دهید که می‌تواند تأثیر زیادی در سرعت، اندازه، مقاومت و نگهداری برنامه شما داشته باشد. در کتاب نرم افزار‌های بسیار خوب: کدی که کار می‌کند، زنده می‌ماند و برنده می‌شود، Marco Faella، نویسنده، معلم و متخصص جاوا، تکنیک هایی را برای نوشتن کد بهتر به شما یاد می‌دهد.

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

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

تعداد بازدید: ۶۹۲
دیدگاه ها: ۰
تاریخ: ۲۰:۲۰:۲۸ ۱۳۹۸/۱۲/۱۴ چهارشنبه
توسط: MotoMan
امتیاز: ۴
برچسب ها: Design Patterns | software engineering |

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

کتاب Dive Into Design Patterns، به بررسی 22 الگوی طراحی کلاسیک و 8 اصل طراحی که این الگوها براساس آن طراحی شده اند پرداخته است. هر فصل با یک مشکل طراحی نرم افزار در دنیای واقعی شروع می‌شود، سپس آن را با استفاده از یکی از این الگوها حل می‌کند. سپس ما به بررسی دقیق ساختار الگو و تغییرات آن به همراه مثال‌های کدی می‌پردازیم. سپس این کتاب کاربرد‌های مختلفی از الگو را نشان می‌دهد و نحوه پیاده سازی الگو را به صورت مرحله به مرحله، حتی در یک برنامه موجود آموزش می‌دهد. هر فصل با بحث در مورد جوانب مثبت و منفی این الگو به پایان می‌رسد و به بررسی روابط آن، شباهت‌ها و تفاوت‌های آن با سایر الگوها می‌پردازد.

تعداد بازدید: ۱۷۲۱
دیدگاه ها: ۳
تاریخ: ۲۳:۳۵:۴۷ ۱۳۹۸/۷/۲۹ دوشنبه
توسط: MotoMan
امتیاز: ۲

این کتاب یک کار پژوهشی نیست. من مروری بر تحقیقات پیشین انجام نداده ام. آنچه که می‌خواهید بخوانید یادآوری خاطره ها، مشاهدات و نظرات شخصی من در طی ۲۰ سال سر و کار داشتن با Agile است – نه بیشتر نه کمتر.

این کتاب برای برنامه نویسان و غیر برنامه نویسان یکسان است. فنی نیست. هیچ کدی وجود ندارد. هدف این است که بدون وارد شدن به عمق جزئیات فنی برنامه نویسی، تست کردن و مدیریت، یک مرور کلی از هدف اصلی توسعه نرم افزار Agile ارائه دهد. این کتاب، کتابی کوچک است. به این دلیل که Agile مبحث خیلی بزرگی نیست. Agile ایده‌ی کوچکی در مورد مشکل کوچک تیم‌های برنامه نویسی کوچک است که کارهای کوچک انجام می‌دهند. Agile در مورد مشکل بزرگ تیم‌های بزرگ برنامه نویسی که کارهای بزرگی انجام می‌دهند، ایده بزرگی نیست. تا حدی عجیب است که این راه حل کوچک برای یک مشکل کوچک نامی دارد. با این همه، تقریباً به محض اختراع نرم افزار، مشکل کوچک مورد بحث، در دهه 50 و 60 حل شد. در آن روزها، تیم‌های نرم افزاری کوچک یاد گرفتند که کارهای کوچک را به خوبی انجام دهند. با این حال، همه اینها در دهه 1970 از بین رفتند، وقتی که تیم‌های نرم افزاری کوچک که کارهای کوچک انجام می‌دادند، همه درگیر یک ایدئولوژی شدند و تصور کردند که باید با تیم‌های بزرگ کارهای بزرگی انجام داد.

آیا قرار نیست با تیم‌های بزرگ کارهای بزرگی انجام دهیم؟ خدایا نه! کارهای بزرگ توسط تیم‌های بزرگ انجام نمی‌شوند؛ کارهای بزرگ با همکاری تیمهای کوچک زیادی که کارهای کوچک بسیاری انجام می‌دهند انجام می‌شوند. این چیزی است که برنامه نویسان در دهه 50 و 60 به طور غریزی می‌دانستند. و این همان چیزی بود که در دهه 1970 فراموش شد. چرا فراموش شد؟ من گمان می‌کنم که دلیلش ناپیوستگی زمان بوده است. در دهه 1970، تعداد برنامه نویسان در جهان شروع به منفجر شدن کردند. پیش از آن، فقط چند هزار برنامه نویس در جهان وجود داشت. پس از آن، صدها هزار نفر بودند. اکنون این تعداد به یکصد میلیون نفر نزدیک شده است.

اولین برنامه نویسان در دهه 50 و 60 میلادی نوجوان نبودند. آنها در دهه‌های 30، 40 و 50 زندگی خود شروع به برنامه نویسی کردند. در دهه 1970، دقیقاً هنگامی که جمعیت برنامه نویسان در حال انفجار بود، آن پیرمردها داشتند بازنشست می‌شدند. بنابراین آموزش‌های لازم هرگز رخ نداد. درحالی که یک گروه جوان 20 و چند ساله وارد کار می‌شدند، افراد با تجربه نیز در حال ترک کار بودند و در نتیجه تجربه آنها به طور مؤثری منتقل نشد.برخی می‌گویند که این واقعه نوعی از دوره‌های تاریک را در برنامه نویسی آغاز کرده است. به مدت 30 سال، ما با این ایده که باید با تیم‌های بزرگ کارهای بزرگی انجام دهیم تلاش می‌کردیم، اما هیچ وقت نمی‌دانستیم که راز این بوده است که کارهای کوچک زیاد باید با تعداد زیادی از تیم‌های کوچک انجام شود.

برای کمک به محبوب کردن این ایده، ما این ایده را نامگذاری کردیم. ما آن را «چابک» نامیدیم. من این مقدمه را در روزهای اول سال 2019 نوشتم. تقریباً دو دهه از زمان راه اندازی مجدد سال 2000 می‌گذرد و به نظر من زمان راه اندازی مجدد دیگری فرا رسیده است. چرا؟ زیرا پیام ساده و کوچک Agile طی این سالها گنگ شده است. Agile با مفاهیمLean ، Kanban، LeSS، SAFe ، مدرن، ماهر و بسیاری موارد دیگر آمیخته شده است. این ایده‌های دیگر لزوما بد نیستند، اما پیام اصلی Agile نیستند. بنابراین وقت آن است که یک بار دیگر آنچه که پیشینیان ما در دهه‌های 50 و 60 و آنچه که ما در سال ۲۰۰۰ یاد گرفتیم به ما یادآوری شود. وقت آن است که به یاد بیاوریم که چابک واقعاً چیست.

در این کتاب، شما چیز جدیدی نخواهید یافت، هیچ چیز قابل توجه یا حیرت انگیزی، هیچ چیز انقلابی که الگو را بشکند. آنچه پیدا خواهید کرد بازگویی Agile به همان شکلی است که در سال ۲۰۰۰ گفته شد. اوه، Agile از دیدگاه دیگری گفته شده است، و ما در طی 20 سال گذشته چیزهایی آموخته ایم که آن‌ها را نیز آورده ام. اما در کل، پیام این کتاب پیام 2001 و پیام 1950 است. این یک پیام قدیمی است. این یک پیام واقعی است. این پیغامی است که راه حل کوچک برای مشکل کوچک تیم‌های نرم افزاری کوچک که کارهای کوچک انجام می‌دهند را در اختیار ما می‌گذارد.

 

 

تعداد بازدید: ۱۸۹۹
دیدگاه ها: ۳
تاریخ: ۱۶:۲۲:۷ ۱۳۹۸/۷/۵ جمعه
توسط: MotoMan
امتیاز: ۱

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

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

تعداد بازدید: ۱۱۷۶
دیدگاه ها: ۰
loading...

لطفا منتظر بمانید...