André Fleischer Saubere Sache Clean Code Developer Wege zur besseren Software
Saubere Software?
Professionalität Geld?
Professionalität Ausbildung?
Professionalität Zertifikate SCJA Sun Certified Java Associate SCJP Sun Certified Java Programmer SCJD Sun Certified Java Developer SCWCD Sun Certified Web Component Developer SCBCD Sun Certified Business Component Developer SCMAD Sun Certified Mobile Application Developer SCEA Sun Certified Enterprise Architect SCWSD Sun Certified Web Services Developer SCSP SNIA Certified Storage Professional SCSE SNIA Certified Storage Engineer SCSA SNIA Certified Storage Architect SCSNE SNIA Certified Storage Networking Expert SCCA HFT 3000 HiPath Field Technician 3000 SCCA Mobile Core Maintenance Engineer SCCA Mobile Radio Maintenance Engineer SCCS HFE 3000 HiPath Field Engineer 3000 SCCS HFE 4000 HiPath Field Engineer 4000 SCCP HSE 3000 HiPath System Engineer 3000 SCCP HSE 4000 HiPath System Engineer 4000 SCCP HSE ecrm HiPath Application Engineer ecrm SNSE IT Network Security Engineer SBS Bochum CIW Security Professional CIW Security Analyst SSCP Systems Security Certified Practitioner TISP Teletrust Information Security Professional GIAC Global Information Assurance Certification RSA Certified Administrator RSA Certified Systems Engineer RSA Certified Instructor TICSA TruSecure ICSA Certified Security Associate SCNS Security Certified Network Specialist SCNP Security Certified Network Professional SCNA Security Certified Network Architect CISA Certified Information Systems Auditor CISM Certified Information Security Manager CSSA Certified SonicWALL Security Administrator CEH Certified Ethical Hacker CSM Certified Scrum MasterFL SAP Foundation Level (Grundlagen) MCP Microsoft Certified Professional MCAD Microsoft Certified Application Developer MCDBA Microsoft Certified Database Administrator MCDST Microsoft Certified Desktop Support Technician MCSA Microsoft Certified Systems Administrator MCSD Microsoft Certified Solution Developer MCSE Microsoft Certified Systems Engineer MCT Microsoft Certified Trainer CAPM Certified Associate in Project Management PMP Project Management Professional PgMP Program Management Professional PMI-RMP PMI Risk Management Professional PMI-SP PMI Scheduling Professional OCA Oracle Certified Associate OCP Oracle Certified Professional OCM Oracle Certified Master CLS Certified Linux Salesperson CNA Certified Netware Administrator CNE Certified Netware Engineer CNS Certified Netware Salesperson CIP Certified Internet Professional Master CNE Master Certified Netware Engineer CNI Certified Novell Instructor Master CNI Master Certified Novell Instructor ECNE Enterprise Certified Netware Engineer CLP Certified Linux Professional CLE Certified Linux Engineer CDE Certified Directory Engineer LTS Linux Technical Specialist SCP Sniffer Certified Professional SCE Sniffer Certified Expert SCM Sniffer Certified Master MySQL Core Certification MySQL Professional Certification Certified MySQL Professional MySQL 5 Developer I Exam MySQL 5 Developer II Exam MySQL 5 DBA I Exam MySQL 5 DBA II Exam MySQL Certified Associate MSS Microsoft Sales Specialist MCTS Microsoft Certified Technology Specialist MCITP - Microsoft Certified IT Professional MCPD Microsoft Certified Professional Developer MOS Microsoft Office Specialist MCAS Microsoft Certified Application Specialist MCAP Microsoft Certified Application Professional MCM Microsoft Certified Master MCA Microsoft Certified Architect SCLP SuSE Certified Linux Professional SCLE SuSE Certified Linux Expert SCLT SuSE Certified Trainer RHCE Red Hat Certified Engineer RHCT Red Hat Certified Technician RHCA Red Hat Certified Architect RHCSS Red Hat Certified Security Specialist RHCS Red Hat Certified Salesperson ITIL Foundation ITIL Service Manager ITIL Practitioner Configuration Management ITIL Practitioner Incident Management ITIL Practitioner Problem Management ITIL Practitioner Release Management ITIL Practitioner Change Management ITIL Practitioner Service Level Management ITIL Practitioner Financial Management ITIL Practitioner Capacity Management ITIL Practitioner Availability Management
Professionalität Ranklotzen?
Wo können wir lernen?
Sichtweisen der Qualität
Weiß der Kunde wie Software entwickelt wird?
Ausreichende Beherrschung
Lösung? Clean Code Developer definiert ein Wertesystem für mehr innere Softwarequalität durch mehr Professionalität
Clean Code von Robert C. Martin
Evolvierbarkeit
Korrektheit
Effizienz
Reflexion
Die Bausteine Prinzipien Gesetzmäßigkeiten Zuwiderhandlung führt zu Schmerz Praktiken Verhaltensweisen Tue es immer so und jederzeit
Grade
Quelle: www.clean-code-developer.de
Quelle: www.clean-code-developer.de
Quelle: www.clean-code-developer.de
Quelle: www.clean-code-developer.de
Quelle: www.clean-code-developer.de
Tools
CCD@Practice Nennen sie es wie sie es wollen Selbst priorisieren Pragmatisch, nicht akademisch Probieren und Reflektieren Die Welt ist bunt Von klein nach Groß
1246 XING-Mitglieder 239 google-group-mitglieder Über 400 Armbandträger Über 8500 Besucher der Homepage 95 Teilnehmer der ccd.powerdays 120 Teilnehmer Java User Group
public class JdkVersion { public static final int JAVA_13 = 0; public static final int JAVA_14 = 1; public static final int JAVA_15 = 2; private static String javaversion; private static int majorjavaversion = JAVA_13; static { javaversion = System.getProperty("java.version"); // should look like "1.4.1_02" if (javaversion.indexof("1.4.")!= -1) { majorjavaversion = JAVA_14; } else if (javaversion.indexof("1.5.")!= -1) { majorjavaversion = JAVA_15; } // else leave as 1.3 default }...
public static boolean isnull(string val) { boolean error=false; if(val==null) { error=true; } return error ; } public static boolean isnotnull(string val) { boolean error=false; if(val==null) { error=true; ; } return error; }
public static String isempty(string ss, String evt){ String red = ""; String s = ss.trim(); if (s.equals("") && (!evt.equals(""))) { red = "#ff0000"; } return red; } public static boolean isintegerinrange(string integer, int min, int max) public static boolean isintentegerinrange(string integer, int min, int max)
switch (mintegrationdirection) { case InventoryIntegrationDirection.DoTheSameChangeInShop: DoTheSameChangeInShop(GetChangedDataFromInventory(mLastSynchDate)); break; case InventoryIntegrationDirection.DoTheSameChangeInInventory: DoTheSameChangeInInventory(GetChangedDataFromShop(mLastSynchDate)); break; case InventoryIntegrationDirection. DoTheSameChangeInShopThenDoTheSameChangeInInventoryForNotChangedDataInInv entory: DoTheSameChangeInShopThenDoTheSameChangeInInventoryForNotChangedDataInInv entory( GetChangedDataFromInventory(mLastSynchDate), GetChangedDataFromShop(mLastSynchDate)); break; } default: break;
if (delete(item) == ERR_OK) { if (itemoption.deletereference(item.id) == ERR_OK) { if ( effort.deleteitem(item.id.makekey() == ERR_OK) { logger.log("item gelöscht"); } else { logger.log("effort nicht gelscht); } } else { logger.log("löschen von Item nicht erfolgreich"); } } else { logger.log("löschen nicht erfolgreich"); return ERR_ERR; }
try { delete(item); itemoption.deletereference(item.id); effort.deleteitem(item.id.makekey(); } catch (Exception ex) { logger.log(ex.getmessage(); }
Über mich André Fleischer, otto group 1995 2000 Studium Technische Informatik (HAW Hamburg) 2001 2007 Lufthansa System IT Consultant, Software Architekt Seit 2007 Otto Group, Software Architekt Focus Software-Architekturen, Java, JEE, Software-Entwicklungs-Prozesse, Objektorientierte Vorgehensweisen Autor Committer Speaker ObjektSpektrum, JavaMagazin XRadar Herbstcampus, JavaZone, prio.conference, access, EclipseCamp, Rational Software Conference, AKOT Kontakt andre.fleischer@ottogroup.com http://www.xing.com/profile/andre_fleischer
Bildnachweis PC, Kapitän, Karte, Geld, Koch, Hammer: istockphoto.com Lego: http://www.flickr.com/photos/seven13avenue/1684260249/in/set-72157602428684627 Werkzeuge: http://flickr.com/photos/jeanmi/210374309/ Ralph, Stefan, Armbänder: clean-code-developer Chicago, Kabelsalat, Portrait, Duplo: Eigene Nautilus: http://www.flickr.com/photos/donlonphoto/2721385316/sizes/o/ Triebwerk: Deutsche Lufthansa Mediabase: 0404_INTERNET_43-P.jpg CleanCode: Prentice Hall PragmaticProgrammer: Addison-Wesley Longman WTF: osnews.com/comic SoftwareCraftmans. Addison Wesley Pub Co Inc Delhi: http://www.flickr.com/photos/baxiabhishek/2071306846/sizes/o/in/set-72157603316853778/ Sprinter: http://www.dailyencouragement.net/archives/2008-09-16.htm Studenten: http://www.studenthelpforum.com/ Leparcours: http://www.flickr.com/photos/josa/127013009/sizes/o/
Saubere Software! André Fleischer andre.fleischer@ottogroup.com www.xing.com/profile/andre_fleischer