{"product_id":"154805","title":"More Effective C ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jYDsmQBgW762nUekWo60ST5O5rZ7S.png?v=1765082020\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e More Effective C# \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/72230776\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e\u003cdiv\u003e \u003cb\u003e50 New Guidelines for Writing Better Code (C# 7.0 Ready)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e C# is gaining more attention as its development area expands from traditional .NET-based development to the Unity game engine.\u003cbr\u003e Additionally, demand continues to grow as Zamarin can support various mobile platforms.\u003cbr\u003e This book provides various tips and practical methods to help software developers use C# more efficiently.\u003cbr\u003e In particular, it covers in detail 50 additional development guidelines that were not covered in the previous work, 『Effective C#』.\u003cbr\u003e \u003cbr\u003eThe author combines his expertise with development guidelines from the development community to offer powerful new solutions for everyday problems.\u003cbr\u003e After reading this book, which clearly explains expert tips and practical example code, you will be able to perform even familiar tasks more efficiently and effectively.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e You can preview some of the book's contents.\u003cbr\u003e \u003cspan\u003ePreview\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eCHAPTER 1_ Data Types\u003c\/b\u003e\u003cbr\u003e Item 1: Use properties instead of accessible data members.\u003cbr\u003e Item 2_ It is better to use implicit properties for mutable data.\u003cbr\u003e Item 3_ It is better for value types to be immutable.\u003cbr\u003e Item 4_ Distinguish between value types and reference types\u003cbr\u003e Item 5_ Design value types so that 0 is a valid state.\u003cbr\u003e Item 6_ Make attributes behave like data  \u003cbr\u003eItem 7_ Limit the scope of type usage using tuples\u003cbr\u003e Item 8: Do not use anonymous types outside of functions.\u003cbr\u003e Item 9: Understand the correlations between different concepts of identity.\u003cbr\u003e Item 10: Understand the Risks of GetHashCode()\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 2_ API Design\u003c\/b\u003e\u003cbr\u003e Item 11_ Do not write conversion operators in APIs.\u003cbr\u003e Item 12: Minimize method overloading by using optional parameters.\u003cbr\u003e Item 13_ Limit the visibility of types\u003cbr\u003e Item 14: It is better to define and implement interfaces rather than inherit them.\u003cbr\u003e Item 15_ Understand the difference between interface methods and virtual methods.\u003cbr\u003e Item 16_ Implement the event pattern for state transmission\u003cbr\u003e Item 17: Do not return internal objects by reference.\u003cbr\u003e Item 18: Use overriding rather than event handlers.\u003cbr\u003e Item 19: Do not overload methods defined in the base class.  \u003cbr\u003eItem 20_ Understand that events increase coupling between objects at runtime.\u003cbr\u003e Item 21: Do not declare events as virtual.\u003cbr\u003e Item 22: Create clear, concise, and complete method groups.\u003cbr\u003e Item 23: Provide partial classes and methods for constructors, mutators, and event handlers.\u003cbr\u003e Item 24: Avoid using ICloneable, which limits design choices.\u003cbr\u003e Item 25_ Only the params array should be used for array parameters.\u003cbr\u003e Item 26_ Report errors from iterators and asynchronous methods immediately using local functions.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 3: TASK-BASED Asynchronous Programming\u003c\/b\u003e\u003cbr\u003e Item 27: Use asynchronous methods for asynchronous tasks.\u003cbr\u003e Item 28_ Never write async void methods\u003cbr\u003e Item 29: Do not use synchronous and asynchronous methods together.\u003cbr\u003e Item 30: Avoid thread creation and context switching by using asynchronous methods.  \u003cbr\u003eItem 31: Avoid unnecessary context marshalling.\u003cbr\u003e Item 32_ Compose asynchronous tasks using task objects.\u003cbr\u003e Item 33: Consider implementing a task cancellation protocol.\u003cbr\u003e Item 34_ Use ValueTask when caching the return value of an asynchronous method.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 4 PARALLEL PROCESSING\u003c\/b\u003e\u003cbr\u003e Item 35: Understand how PLINQ implements parallel algorithms.\u003cbr\u003e Item 36: Build parallel algorithms with exceptions in mind.\u003cbr\u003e Item 37: Don't create threads, use a thread pool.\u003cbr\u003e Item 38: Use BackgroundWorker for inter-thread communication.\u003cbr\u003e Item 39_ Understand Cross-Thread Calls in the XAML Environment\u003cbr\u003e Item 40_ Use lock() as a top priority for synchronization.\u003cbr\u003e Item 41_ Apply locks to as narrow a range as possible.\u003cbr\u003e Item 42: Avoid calling external code in locked areas.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 5 DYNAMIC PROGRAMMING\u003c\/b\u003e \u003cbr\u003eItem 43: Understand the Pros and Cons of Dynamic Typing\u003cbr\u003e Item 44: Use dynamic typing to leverage the runtime type of generic type parameters.\u003cbr\u003e Item 45: Use DynamicObject or IDynamicMetaObjectProvider for data-driven dynamic typing.\u003cbr\u003e Item 46_ Learn how to use the expression API\u003cbr\u003e Item 47_ Minimize the use of dynamic objects in public APIs.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eCHAPTER 6 Joining the Global C# Community\u003c\/b\u003e\u003cbr\u003e Item 48: Look for the best answer, not the most popular one.\u003cbr\u003e Item 49: Contribute to improving specifications and code.\u003cbr\u003e Item 50: Consider automating processing using analyzers.\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003e50 Useful Tips for C# Developers\u003c\/b\u003e\u003cbr\u003e This book is a representative book in the series along with the author's previous work, Effective C#. \u003cbr\u003eThe author has contributed a great deal to the C# community, but writing this book is arguably one of the most notable contributions.\u003cbr\u003e The first edition of \"Effective C#,\" published over a decade ago, not only inspired C# developers in the United States and around the world immediately after its publication, but also established itself as a must-read for all developers as a practical, advanced guide.\u003cbr\u003e This book can be considered the second part of 『Effective C#』, and contains content and advanced utilization techniques that were not covered in Part 1.\u003cbr\u003e\u003cbr\u003e This book goes beyond simply explaining the system and implementation characteristics of languages ​​and frameworks.\u003cbr\u003e It covers topics not easily found in other books, such as common problems and solutions encountered when developing with C# in the field, how to use newly added and improved features in C# in the right place, and how to find the cause of problems and improve them.\u003cbr\u003e \u003cbr\u003eThe primary target audience is professional developers whose primary language is C#.\u003cbr\u003e It assumes that you are already familiar with C# syntax and features and is intended for readers who have a general understanding of C#.\u003cbr\u003e Therefore, it does not cover the basic functions or features of the C# language.\u003cbr\u003e Instead, it shows you how to apply all the features that C# currently offers to real-world tasks.\u003cbr\u003e It is assumed that you have an understanding of the basic features of C#, as well as the common language runtime (CLR) and the JIT compiler.\u003cbr\u003e\u003cbr\u003e Key Contents\u003cbr\u003e ● Chapter 1_ Data Types\u003cbr\u003e ● Chapter 2_ API Design\u003cbr\u003e ● Chapter 3: Task-based Asynchronous Programming\u003cbr\u003e ● Chapter 4_ Parallel Processing\u003cbr\u003e ● Chapter 5_ Dynamic Programming\u003cbr\u003e Chapter 6: Joining the Global C# Community \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e GOODS SPECIFICS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate of issue:\u003c\/strong\u003e May 6, 2019\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 300 pages | 183*235*20mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13:\u003c\/strong\u003e 9791162240892\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10:\u003c\/strong\u003e 116224089X \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893454340138,"sku":"154805","price":36.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/360a31829e0d0c28e270bc529c49ec14.jpg?v=1765402753","url":"https:\/\/librairie.coreenne.fr\/en\/products\/154805","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}