developing design sense of code smells
TRANSCRIPT
![Page 1: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/1.jpg)
Code Smells Developing Design Sense for your Code
@LlewellynFalco
![Page 2: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/2.jpg)
Play along atSlides: llewellynfalco.blogspot.com/p/sparrow-decks.html
Phone game: bit.ly/sparrowdecks
![Page 3: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/3.jpg)
*http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0141357
Dr. Pigeon diagnosis cancer15 days of training
85% successful University of Iowa
![Page 4: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/4.jpg)
Sparrows Decks
Song House
![Page 5: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/5.jpg)
Sparrows Decks
![Page 6: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/6.jpg)
Clutter
![Page 7: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/7.jpg)
Time to find things
![Page 8: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/8.jpg)
![Page 9: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/9.jpg)
Patterns in the code
![Page 10: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/10.jpg)
![Page 11: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/11.jpg)
Accounts_Receivable
Balance_Sheet
Cost_of_Goods
Expenses
Liabilities_2010Present_Value
Profit_And_Loss
Outstanding_Invoices
Accounts_Receivable_2010
Balance_Sheet_2010
Cost_of_Goods_2010
Expenses_2010Liabilities
Present_Value_2010
Profit_And_Loss_2010
Outstanding_Invoices_2010
Accounts_Receivable_2010Balance_Sheet_2010Cost_of_Goods_2010Expenses_2010LiabilitiesPresent_Value_2010Profit_And_Loss_2010 Outstanding_Invoices_2010
![Page 12: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/12.jpg)
Long lines
if (fullName.StartsWith(hintAssemblyName, StringComparison.OrdinalIgnoreCase) && stream != null && BrowserInteropHelper.IsBrowserHosted || (loadedAssembly.FullName.Starts
![Page 13: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/13.jpg)
Encapsulation & Readability
![Page 14: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/14.jpg)
if (fullName.StartsWith(hintAssemblyName, StringComparison.OrdinalIgnoreCase) && stream != null && BrowserInteropHelper.IsBrowserHosted || (loadedAssembly.FullName.Starts
if (isAssemblyAvailable())
vs.
![Page 15: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/15.jpg)
Long Methods
// If a license key has been located... if (licenseKey != null) { // Decrypt licenseKey = ActiproLicenseProvider.DecryptString(licenseKey, encryptionKey);
// Find the licensee and license key string[] licenseKeyData = licenseKey.Split(new Char[] { ';' }); if (BrowserInteropHelper.IsBrowserHosted) { // XBAP licensing uses required assembly / licensee / license key
// Ensure that the specified assembly is in the AppDomain string requiredAssemblyName = licenseKeyData[0].Trim(); Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); bool assemblyFound = false; foreach (Assembly loadedAssembly in assemblies) { if (loadedAssembly.FullName.StartsWith(requiredAssemblyName + ",", StringCompari assemblyFound = true; break; } }
if ((assemblyFound) && (plainTextLicensee == licenseKeyData[2]) && (String.Compare // Assembly was found so use license data licensee = licenseKeyData[2]; licenseKey = licenseKeyData[1]; sourceLocation = ActiproLicenseSourceLocation.AssemblySavedContext; } } else { // Regular licensing just uses licensee / license key licensee = licenseKeyData[1]; licenseKey = licenseKeyData[0]; sourceLocation = ActiproLicenseSourceLocation.AssemblySavedContext; }
![Page 16: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/16.jpg)
Encapsulation & Readability
![Page 17: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/17.jpg)
Merge Conflict
![Page 18: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/18.jpg)
Bad Names
![Page 19: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/19.jpg)
Time to Onboard New Employees
![Page 20: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/20.jpg)
Silo’s
![Page 21: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/21.jpg)
Lingo
![Page 22: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/22.jpg)
DuplicationDuplication
DuplicationDuplication
DuplicationDuplicationDuplicationDuplicationDuplication
![Page 23: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/23.jpg)
Inconsistency
![Page 24: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/24.jpg)
![Page 25: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/25.jpg)
LlewellynFalco.blogspot.com
![Page 26: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/26.jpg)
Resourceswww.ApprovalTests.com
21 episode youtube series
![Page 27: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/27.jpg)
#MobProgrammingGuidebook
![Page 28: Developing design sense of code smells](https://reader031.vdocuments.site/reader031/viewer/2022030307/58e9673d1a28abb45f8b653b/html5/thumbnails/28.jpg)
Contact Information@LlewellynFalcohttp://LlewellynFalco.Blogspot.comhttp://www.approvaltests.com