کتاب های برچسب software-engineering
تاریخ: ۱۲:۱۹:۲ ۱۳۹۶/۱۲/۱۱ جمعه
توسط: MotoMan
امتیاز: ۱
برچسب ها: Design Patterns | CPP | software engineering |
با ++C مدرن، برنامه‌های قابل نگهداری، قابل گسترش و با دوام بنویسید. کتاب ++Clean C - الگوها و بهترین شیوه‌های توسعه نرم افزار پایدار، برای هر توسعه دهنده، معمار نرم افزار یا سرپرست تیمی که علاقه مند به خوب کدنویسی با ++C و صرفه جویی در هزینه توسعه است، ضروری است. اگر می‌خواهید که به خودتان تمیز کد نوشتن با ++C را آموزش دهید، کتاب ++Clean C دقیقا چیزی هست که به آن احتیاج دارید. این کتاب نوشته شده تا به توسعه دهندگان ++C در تمامی سطوح کمک کند تا چگونگی نوشتن کد ++C قابل فهم، انعطاف پذیر، قابل نگهداری و کار آمد را با مثال آموزش دهد. حتی اگر شما توسعه دهنده با تجربه ++C هستید، نکاتی در این کتاب پیدا می‌کنید که در کار خود مفید خواهید یافت.
اگر اهمیتی به کد خود نمی‌دهید، شما می‌توانید یک حیوان بزرگ کثیف غیر قابل نگهداری با هر زبان برنامه نویسی تولید کنید. اگر چه، پروژه‌های ++C به طرز خاصی مستعد کثیفی هستند و  تمایل به تبدیل شدن به عادت‌های بد دارند. بیشتر کدهای ++C ای که امروزه نوشته می‌شوند به نظر می‌آیند که در دهه‌ی 1980 نوشته شده اند. این طور به نظر می‌رسد که توسعه دهندگان ++C توسط کسانی که مهارت‌های نرم افزاری و اصول کد نویسی تمیز را ترویج می‌دادند به دست فراموشی سپرده شده اند. اینترنت پر شده از مثال‌های ++C که ظاهرا خیلی سریع و بهینه هستند ولی با سینتکس بی رحمانه ای که کاملا اصول ابتدایی طراحی خوب و کد نویس خوب را نادیده می‌گیرند. این کتاب شرح خواهد داد که چگونه از چنین سناریو هایی دوری کنید و چگونه بیشترین استفاده از کد ++C خود بکنید. در انتها شما کد نویسی خودتان را موثر‌تر و مهمتر از همه سرگرم کننده‌تر خواهید یافت.
مطالبی که در کتاب ++Clean C یاد خواهید گرفت عبارتند از:
- فهمیدن اصول و قوانین برای کد نویسی تمیز در ++C
- به کار گیری توسعه آزمون محور (TDD)
- کشف کردن الگو‌های طراحی و اصطلاحات ++C
- به کار گیری الگو‌های طراحی
تعداد بازدید: ۴۱۴
دیدگاه ها: ۰
تاریخ: ۲۰:۳۸:۹ ۱۳۹۶/۹/۱۵ چهارشنبه
توسط: MotoMan
امتیاز: ۲

هر موقع که صحبتی از معماری نرم افزار می‌شود، غالبا افراد به مدل هایی فکر می‌کنند که تمثیل ساختار‌های تشکیل دهنده معماری هستند. افراد کمی نیز  فکر می‌کنند که معماری نرم افزار، فرآیند‌های فکری هستند که این ساختار‌ها را پدید آورده اند و به عنوان فرآیند طراحی شناخته می‌شود. طراحی فعالیتی پیچیده برای انجام و موضوع پیچیده برای نوشتن در مورد آن است چرا که با در نظر گرفتن جنبه‌های زیاد سیستم، تصمیمات بیشماری را درگیر خود می‌کند. بیان کردن این جنبه‌ها معمولا سخت است به خصوص وقتی که آن‌ها از تجربه‌ها و دانشی سرچشمه می‌گیرند که به سختی در میدان نبرد پروژه‌های توسعه نرم افزاری قبلی به دست آمده باشند.
با این حال فعالیت طراحی، اساس معماری نرم افزار است و همین طور احتیاج به توضیح دادن دارد. اگرچه تجربه را به سختی می‌توان از طریق کتاب انتقال داد ولی چیزی که می‌شود به اشتراک گذاشت متدی است تا به شما کمک کند تا فرآیند طراحی را به صورت سیستماتیک انجام دهید.
این کتاب درباره فرآیند طراحی و به خصوص درباره‌ی یک روش طراحی به نام (Attribute-Driven Design (ADD است. ما باور داریم که این روش ابزاری قدرتمند است که به شما کمک می‌کند تا یک طراحی اصولی، منظم و قابل تکرار انجام دهید. در این کتاب ADD و چند مثال از استفاده ADD در دنیای آورده شده است تا نشان دهیم که چگونه طراحی معماری انجام دهیم.

 

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

دانش و مهارت زیادی لازم نیست تا یک برنامه نوشت. بچه‌های دبیرستانی نیز این کار را در دبیرستان انجام می‌دهند. مردان و زنان جوان در دانشگاه با سر هم کردن چند خط کد PHP یا Ruby کسب و کار‌های میلیارد دلاری را شروع کرده اند. برنامه نویسان تازه کار زیادی در دفاتر کاری مکعبی شکلشان در سرتاسر دنیا در بین اسناد حجیم نیازمندی‌های موجود در سیستم‌های issue tracking خود در حال تقلا هستند تا سیستم هایشان را با صرف فعل خواستن توانستن است به کار بیندازند. کدهایی که تولید می‌کنند ممکن است زیبا نباشند ولی کار می‌کنند. کار می‌کند به این دلیل که چیزی بتواند یک بار کار کند، خیلی سخت هم نیست.
این که چیزی واقعا به درستی کار کند موضوعی کاملا متفاوت است. پیاده سازی صحیح نرم افزار سخت است چرا که دانش و مهارت هایی نیاز دارد که هنوز بیشتر برنامه نویسان جوان به آن دست نیافته اند. این کار به بینش و تفکری احتیاج دارد که بیشتر برنامه نویسان وقتی برای توسعه آن‌ها نمی‌گذارند. همه‌ی این‌ها به سطحی از انضباط و تعهد احتیاج دارد که بسیاری از برنامه نویسان حتی خوابش را نمی‌دیدند که به آن‌ها احتیاج پیدا کنند و در بیشتر موارد اشتیاق به مهارت و تمایل به حرفه ای شدن است.
وقتی که برنامه را به شکل صحیح پیاده سازی کنید، چیزی جادویی اتفاق می‌افتد: دیگر به لشکری از برنامه نویسان برای این که آن را در حال کار کردن نگه دارند نیاز ندارید. دیگر به سندهای نیازمندی‌های حجیم و سیستم‌های issue tracking بزرگ احتیاج ندارید. شما دیگر به اتاق‌های کاری مکعبی شکل زیاد و برنامه نویسی 24 ساعت و هفت روز در هفته نیاز ندارید.
نرم افزاری که یه شکل صحیح تمام شود، تعداد کمتری از منابع انسانی برای ایجاد و نگه داری نیاز دارد. تغییرات به سرعت و ساده هستند. نقص‌ها کم و فاصله‌ی بین آن‌ها کم است. تلاش کاهش می‌یاد، عملکرد و انعطاف پذیری افزایش می‌یابد.
بله، همچین چشم اندازی به نظر خیال پردازی می‌آید. ولی من آن جا بوده ام، من دیدم که اتفاق افتاد. من بر روی پروژه هایی کار کرده ام که طراحی و معماری سیستم، نوشتن کد و نگهداری آن را آسان کرده بود. پروژه هایی را تجربه کرده ام که به کسری از نیرو‌های انسانی پیش پینی شده احتیاج پیدا کرده بود. بر روی سیستم هایی کار کرده ام که نرخ نقص به شدت پایینی داشته اند. من تاثیرات خارق العاده ای که یک معماری نرم افزاری خوب می‌تواند بر روی سیستم، پروژه و تیم داشته باشد را دیده ام.
اما حرف‌های من را در نظر نگیرید. به تجربه خودتان نگاه کنید. آیا خلافش را تجربه کرده اید؟ آیا بر روی سیستم هایی کار کرده اید که جوری به هم پیوسته و پیچیده اند که هر تغییری جدای از این که چقدر واضح و ساده باشد، هفته‌ها طول می‌کشد و خطر‌های بزرگی را شامل می‌شود. آیا طراحی سیستم هایی که با آن‌ها کار کرده اید تاثیر منفی بزرگی بر روی روحیه تیم، اعتماد مشتریان، سازمان‌ها و حوصله‌ی مدیران گذاشته اند؟ آیا تیم ها، سازمان‌ها و حتی شرکت هایی که به وسیله‌ی ساختار نرم افزاری فاسد خود نابود شده اند را دیده اید؟ آیا تا به حال در جهنم برنامه نویسان بوده اید؟
من بوده ام و تا حدودی بیشتر ما نیز بوده ایم. تفاوت بسیار زیادی است بین وقتی که شما دارید با طراحی‌های نرم افزاری افتضاح کلنجار می‌روید تا وقتی که دارید از کار با یکی از طراحی‌های خوب لذت می‌برید.

 

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

اصول، الگو‌ها و شیوه‌ها مهم هستند، ولی این افراد هستند که آن‌ها را به کار می‌بندند. همان طور Alistair Cockburn گفته است "فرایند و تکنولوژی بر روی خروجی پروژه از اثرات ثانویه هستند. آن چیزی که جزء اثرات اولیه تاثیر گذار بر پروژه است، افراد هستند."
ما نمی‌توانیم تیم‌های برنامه نویسان را مدیریت کنیم، به شرط آن که سیستم‌های ساخته شده از اجزای تشکیل شده توسط فرایند وجود داشته باشند. افراد واحد‌های برنامه نویسی plug-compatible نیستند. اگر می‌خواهیم که پروژه هایمان موفق شوند، ما باید تیم‌های خود سازمانده و  مشارکتی ایجاد کنیم.
شرکت هایی که به تشکیل چنین تیم هایی تشویق می‌کنند، مزیت رقابتی قابل توجهی نسبت به آن هایی که نگرششان این است که شرکت‌های توسعه نرم افزار چیزی بیش از یک شرکت درپیت نیست. یک تیم نرم افزاری خوب، قدرتمندترین نیروی توسعه نرم افزار است.

 

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

کار توسعه‌ی برنامه‌های سازمانی، سود زیادی از ظهور تکنولوژی‌های جدید برده است. پلتفرم‌های شی گرا چند لایه، مانند جاوا و .NET خیلی رایج و عادی شدند. این ابزار‌ها و تکنولوژی‌های جدید، توانایی ساخت برنامه‌های قدرتمند را دارند، ولی به راحتی قابل پیاده سازی نیستند. شکست‌های رایج در برنامه‌های سازمانی معمولا به این علت رخ می‌دهند که توسعه دهندگان آن ها، درس‌های معماری که توسعه دهندگان با تجربه در کار با اشیا یاد گرفته اند را نفهمیده اند.
کتاب Patterns of Enterprise Application Architecture نوشته شده تا پاسخی مستقیم به چالش‌های سختی باشد که توسعه دهندگان برنامه‌های سازمانی با آن روبرو می‌شوند. نویسنده این کتاب، آقای Martin Fowler  که طراحی شی گرا است، متوجه شد که با وجود تغییرات در تکنولوژی از Smalltalk تا CORBA تا Java تا NET.، همان ایده‌های طراحی پایه می‌توانند وفق پیدا کرده و اعمال شوند تا مشکلات رایج را حل کنند.
این کتاب در حقیقت دو کتاب در یک کتاب است. بخش اول  یک آموزش کوتاه در مورد توسعه برنامه‌های سازمانی است که شما می‌توانید از ابتدا تا انتها آن را بخوانید  تا محدوده‌ی درس‌های این کتاب را بفهمید. بخش بعدی که بخش عمده‌ی کتاب را تشکیل می‌دهد، یک مرجع دقیق برای خود الگو‌ها است. برای هر الگو اطلاعات کاربرد و پیاده سازی آن به همراه کد مثال‌ها به جاوا یا سیشارپ ارائه شده است. کل این کتاب نیز با دیاگرام‌های UML برای توضیحات بیشتر مفاهیم، نشان داده شده است.
با مسلط شدن به این کتاب، شما دانش لازم برای تصمیم گیری‌های مهم در ساخت یک برنامه‌ی سازمانی را را به دست خواهید آورد تا از الگوهای ثابت شده در موقع ساخت آن‌ها استفاده کنید.

 

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

کتاب UML Distilled : یک راهنمای مختصر بر زبان استاندارد UML

UML یک زبان مدل سازی اشیاء موجود در فرایند ساخت نرم افزار است . از این زبان برای نمایش ساده اشیاه ، کلاس‌ها ، فعالیت‌ها و actor استفاده میشود . در این کتاب حدود 99 درصد موارد مورد استفاده در این زبان را فرا خواهید گرفت .

این کتاب با وجود حجم کم اما بسیار مفید است .

 

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

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

این کتاب به شما به بهترین نحو در بدست آوردن این نیازمند‌ها کمک خواهد کرد .

 

تعداد بازدید: ۲۳۷۶
دیدگاه ها: ۳
loading...

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