// API callback
relpostimgcuplik({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-3826368468004556615"},"updated":{"$t":"2023-12-26T13:46:15.660-08:00"},"category":[{"term":"sapui5"},{"term":"SAP ABAP"},{"term":"sap"},{"term":"ABAP Interview Questions"},{"term":"SAP Technical Interviews"},{"term":"Sap RAP"},{"term":"sap fiori"},{"term":"sap web ide"},{"term":"interview questions"},{"term":"custom sapui5 app extension"},{"term":"extending apps"},{"term":"odata"},{"term":"Navigation"},{"term":"Routing"},{"term":"SAP netweaver gateway"},{"term":"odata tutorial"},{"term":"ABAP"},{"term":"ABAP Coding Best Practices"},{"term":"ABAP Developer Tips"},{"term":"ABAP Development"},{"term":"ABAP Job Interview Insights"},{"term":"ABAP Job Preparation"},{"term":"Latest ABAP FAQs"},{"term":"SAP ABAP Certification"},{"term":"SAP Bussiness Application Studio"},{"term":"SAP CAP"},{"term":"node.js"},{"term":"sap capm"},{"term":"sap cloud platform"},{"term":"ABAP CDS Views"},{"term":"ABAP Code Examples"},{"term":"ABAP Data Modeling"},{"term":"ABAP HANA Integration"},{"term":"Answers"},{"term":"Developer Tips"},{"term":"HANA Development"},{"term":"HANA Modeling"},{"term":"HANA Performance Tuning."},{"term":"RAP Implementation"},{"term":"RAP Model"},{"term":"SAP ABAP on HANA"},{"term":"SAP HANA clould cockpit"},{"term":"SAP Interview Prep"},{"term":"SAP RAP Tutorial"},{"term":"cloud foundary"},{"term":"json"},{"term":"sap BTP CAPM"},{"term":"sap btp"},{"term":"CAP"},{"term":"CDS"},{"term":"HANA"},{"term":"MockSever"},{"term":"RAP"},{"term":"Routing in sapui5"},{"term":"associations"},{"term":"authentication"},{"term":"charts"},{"term":"cloud foundry"},{"term":"configuring destination in sap web ide"},{"term":"css"},{"term":"enterprise portal"},{"term":"import"},{"term":"introduction to sap web ide"},{"term":"odata v4"},{"term":"sap fiori portal site"},{"term":"sap mobile services"},{"term":"sap portal site"},{"term":"video tutorial on routing"},{"term":"Classical report"},{"term":"Cloud Application Programming Model"},{"term":"Interactive Reports"},{"term":"Internal Tables"},{"term":"Introduction"},{"term":"Introduction to sap enterprise portal"},{"term":"Mock data"},{"term":"SAP BAS"},{"term":"SAP Mobile cards"},{"term":"SEGW"},{"term":"Visual studio code"},{"term":"Web IDE"},{"term":"aggregation binding"},{"term":"android"},{"term":"app router"},{"term":"btp"},{"term":"capm"},{"term":"component preload"},{"term":"controller"},{"term":"controller extension"},{"term":"controls and views"},{"term":"create OData service"},{"term":"crud"},{"term":"csv"},{"term":"data binding"},{"term":"dataset"},{"term":"delete"},{"term":"extending sapui5 apps"},{"term":"fiori"},{"term":"formatter"},{"term":"git"},{"term":"github"},{"term":"google maps api"},{"term":"i18n"},{"term":"ios"},{"term":"list"},{"term":"manifest.json"},{"term":"mobile development kit"},{"term":"mta"},{"term":"mtar"},{"term":"multi target application"},{"term":"operations on internal table"},{"term":"properties"},{"term":"push a project in github"},{"term":"python"},{"term":"register odata service"},{"term":"routing in full application"},{"term":"sap cloud platform SDK"},{"term":"sap fiori enterprise portal"},{"term":"sapui5 github"},{"term":"search"},{"term":"setup sap bussiness application studio"},{"term":"sicf"},{"term":"sort"},{"term":"table"},{"term":"tables"},{"term":"video tutorial on nested views and fragments"},{"term":"xml"},{"term":"- SAP ABAP performance optimization\n\n- ABAP performance tuning\n\n- SAP ABAP best practices\n\n- SAP ABAP performance tips\n\n- ABAP performance optimization techniques\n\n- SAP ABAP performance improvements"},{"term":"ABAP 7.5"},{"term":"ABAP 7.6"},{"term":"ABAP Enhancements"},{"term":"ABAP Innovations"},{"term":"ABAP List Viewer"},{"term":"ABAP New Features"},{"term":"ABAP on HANA interview questions and answers"},{"term":"ALE"},{"term":"ALV Grid Report"},{"term":"ALV Grid Tutorial"},{"term":"ALV programming examples"},{"term":"ALV reports"},{"term":"Activate OData Service in SICF"},{"term":"Agile Development"},{"term":"BAS"},{"term":"BDC"},{"term":"Batch"},{"term":"Best practices"},{"term":"Binary Data Handling"},{"term":"Blobs in JavaScript"},{"term":"CAPM Apps"},{"term":"CDL"},{"term":"CLASSICAL REPORTS"},{"term":"CQL"},{"term":"CRUD operations"},{"term":"CSN"},{"term":"Cache"},{"term":"Cloud-Native Architecture"},{"term":"Configure Catalog and Groups in SAP Fiori Portal Sites"},{"term":"Configuring Fiori Tiles in sap portal sites"},{"term":"Custom Controls"},{"term":"Custom control to make a Radar Chart using Chart.js library in SAPUI5."},{"term":"DDIC"},{"term":"DPC"},{"term":"Data Storage"},{"term":"Data types"},{"term":"Debugging ABAP"},{"term":"Dev Tools"},{"term":"Development"},{"term":"Dialog sapui5"},{"term":"Environment variables"},{"term":"Event Handling"},{"term":"Field Catalog"},{"term":"File Manipulation"},{"term":"Fragment"},{"term":"Fragment in sapui5"},{"term":"Global sub routines"},{"term":"Globalization and localization"},{"term":"How to Change logon Page of Enterprise Portal"},{"term":"How to export SAP Web IDE Workspace projects"},{"term":"How to get Selected table index value?"},{"term":"Image Upload"},{"term":"Installation of sap ui5 plugin"},{"term":"Internal Table"},{"term":"Introduction and DDIC"},{"term":"Introduction to SAP portal sites"},{"term":"JDK"},{"term":"LOCAL SUB ROUTINES"},{"term":"Latest ABAP Updates"},{"term":"Logon Page in Enterprise Portal"},{"term":"Logon to SAP ABAP"},{"term":"MDK introduction"},{"term":"MPC"},{"term":"Mdk app"},{"term":"Microservices in SAP BTP"},{"term":"Module Pool"},{"term":"Most common examples in sap ui5"},{"term":"Mta yaml"},{"term":"Naming conventions"},{"term":"Navigation Properties"},{"term":"OData v2 benefits"},{"term":"OData v2 vs. OData v4"},{"term":"OData v4 advantages"},{"term":"OOPs Concepts"},{"term":"Offline app"},{"term":"Parts"},{"term":"Pass by reference"},{"term":"Pass by value (or) call by value"},{"term":"Pass by value and return"},{"term":"Plugin"},{"term":"Project structure"},{"term":"SAP ABAP Blog."},{"term":"SAP ABAP function modules"},{"term":"SAP ABAP video tutorials"},{"term":"SAP ABAP views"},{"term":"SAP Business Technology Platform"},{"term":"SAP Data Presentation"},{"term":"SAP Development"},{"term":"SAP ECC"},{"term":"SAP Fiori Configuration cockpit"},{"term":"SAP Fiori Launchpad Portal Site"},{"term":"SAP MTA"},{"term":"SAP NetWeaver Portal"},{"term":"SAP OData"},{"term":"SAP Programming"},{"term":"SAP S\/4HANA"},{"term":"SAP Tech Trends"},{"term":"SAP cloud solutions"},{"term":"SAP functional modules"},{"term":"SAP implementation."},{"term":"SAP modules"},{"term":"SAP overview"},{"term":"SAP technical modules"},{"term":"SAPUI5 data communication"},{"term":"SAPui5 application on SAP bussiness application studio"},{"term":"SUB ROUTINES"},{"term":"Sapui5 jobs"},{"term":"Scalable Applications"},{"term":"Search Help in DDIC"},{"term":"Security"},{"term":"Security Considerations"},{"term":"Setting Up an App Router in SAP CAPM Project on BTP: A Step-by-Step Guide"},{"term":"SmartForms"},{"term":"Sorting"},{"term":"Templates and Accelerators in SAP Portal sites"},{"term":"Transaction code"},{"term":"Transport Request Number"},{"term":"Tutorial series on SAP Enterpise Portal"},{"term":"Tutorials"},{"term":"UI5 Inspector"},{"term":"User Interaction"},{"term":"Web Application Development"},{"term":"XS-UAA"},{"term":"add"},{"term":"add and delete operation"},{"term":"admin cockpit sap cloud mobile services"},{"term":"aggregations"},{"term":"annotations"},{"term":"annotations in OData"},{"term":"api"},{"term":"appearance"},{"term":"append operation"},{"term":"application"},{"term":"apps"},{"term":"architecture of sap fiori"},{"term":"authorization"},{"term":"backend components"},{"term":"batch processing in OData"},{"term":"begin set"},{"term":"beginset"},{"term":"boolean"},{"term":"branding"},{"term":"cache buster"},{"term":"catalogs"},{"term":"changeset"},{"term":"chart.js"},{"term":"charts in sapui5"},{"term":"chrome"},{"term":"cluster"},{"term":"code quality"},{"term":"combo box"},{"term":"commit"},{"term":"component configuration"},{"term":"component.js"},{"term":"configure catalogs and groups"},{"term":"configuring tiles"},{"term":"containers"},{"term":"contrller"},{"term":"controller hooks"},{"term":"controller.js"},{"term":"create"},{"term":"create cloud foundary account"},{"term":"create destinations to connect mobile services from sap web ide"},{"term":"css folder"},{"term":"csv upload validation"},{"term":"custom control"},{"term":"custom fiori app"},{"term":"custom image"},{"term":"custom login page"},{"term":"data element"},{"term":"database views"},{"term":"debug files in production environment"},{"term":"debugging javascript files"},{"term":"deman pop-in"},{"term":"deploy to cloud foundry"},{"term":"design principles"},{"term":"distance"},{"term":"doalog"},{"term":"domain"},{"term":"drag and drop"},{"term":"dv"},{"term":"dynamic"},{"term":"edit"},{"term":"enable sap web ide"},{"term":"event"},{"term":"events"},{"term":"events in classical reports"},{"term":"example classical report example"},{"term":"example of CAP"},{"term":"examples"},{"term":"excel"},{"term":"export project"},{"term":"export sap projects"},{"term":"export sapui5 project"},{"term":"expression"},{"term":"external library"},{"term":"external style"},{"term":"file"},{"term":"file reader"},{"term":"filter"},{"term":"filtering"},{"term":"fiori app"},{"term":"fiori apps"},{"term":"fiori jobs"},{"term":"fiori launchpad"},{"term":"fiori tiles"},{"term":"formatters"},{"term":"frontend components"},{"term":"function"},{"term":"geocoder"},{"term":"get cursor"},{"term":"get expanded entity"},{"term":"get expanded entityset"},{"term":"globalization"},{"term":"google maps"},{"term":"grouping"},{"term":"groups"},{"term":"gulp"},{"term":"handling localized texts"},{"term":"hcp"},{"term":"header item relationship"},{"term":"hello world"},{"term":"hello world application"},{"term":"help views"},{"term":"hierarchial ALV"},{"term":"icf"},{"term":"implementing SAP Fiori"},{"term":"import project"},{"term":"index"},{"term":"index of list"},{"term":"inline expressions"},{"term":"inner join"},{"term":"interactive reports events"},{"term":"interactive reports example"},{"term":"internal style"},{"term":"interview tips"},{"term":"introduction to ERP"},{"term":"introduction to odata annotations"},{"term":"introduction to sap abap"},{"term":"introduction to sap fiori"},{"term":"introduction to sapui5"},{"term":"item"},{"term":"iwfnd"},{"term":"javascript"},{"term":"javascript code editor"},{"term":"job search"},{"term":"joins"},{"term":"js"},{"term":"json model"},{"term":"jwt token"},{"term":"large string"},{"term":"launchpad"},{"term":"launchpad configuration"},{"term":"layout"},{"term":"layouts"},{"term":"local development"},{"term":"local service"},{"term":"login"},{"term":"login configuration"},{"term":"logo"},{"term":"logon page"},{"term":"lpd_cust"},{"term":"maint_service"},{"term":"maintainability"},{"term":"maintainence view"},{"term":"margins"},{"term":"marker"},{"term":"mdk"},{"term":"metadata.xml"},{"term":"mfa"},{"term":"minScreenWidth"},{"term":"mobile services in cloud foundary"},{"term":"model folder"},{"term":"modules"},{"term":"multi cloud environment"},{"term":"nested view"},{"term":"npm"},{"term":"odat v4"},{"term":"odata deep structures"},{"term":"odata tutorial series"},{"term":"odata v2"},{"term":"offline capabilities"},{"term":"online training abap"},{"term":"openui5"},{"term":"optimization"},{"term":"outer join"},{"term":"package"},{"term":"padding"},{"term":"parameter"},{"term":"pass multiple values"},{"term":"path"},{"term":"pdf"},{"term":"pfcg"},{"term":"pool"},{"term":"portal"},{"term":"portal site"},{"term":"projection views"},{"term":"pull"},{"term":"pull a project"},{"term":"push"},{"term":"radar chart"},{"term":"re usability"},{"term":"read"},{"term":"read table"},{"term":"register cloud platform"},{"term":"reports"},{"term":"resource bundle"},{"term":"resources"},{"term":"responsive"},{"term":"responsive table"},{"term":"responsive table in sapui5"},{"term":"responsiveness"},{"term":"rest"},{"term":"roles"},{"term":"routing in split app"},{"term":"saml"},{"term":"sap MDK"},{"term":"sap abap tutorials"},{"term":"sap app"},{"term":"sap backend system"},{"term":"sap cloud foundary"},{"term":"sap cloud platform for portal sites"},{"term":"sap cloud platform mobile services"},{"term":"sap custom portal sites"},{"term":"sap enterprise portal"},{"term":"sap fiori application"},{"term":"sap fiori apps"},{"term":"sap fiori configuration cockpit portal sites"},{"term":"sap fiori elements"},{"term":"sap fiori enterprise portal sites"},{"term":"sap fiori jobs"},{"term":"sap fiori launchpad"},{"term":"sap fiori launchpad configuration"},{"term":"sap fiori tools"},{"term":"sap fiori tutorial"},{"term":"sap freestyle portal sites"},{"term":"sap mobile development kit"},{"term":"sap mobile services tutorial"},{"term":"sap mobility jobs"},{"term":"sap ui5"},{"term":"sap ui5 excel upload"},{"term":"sap viz frame"},{"term":"sap web IDE Workspace export"},{"term":"sap web ide deprecated"},{"term":"sap webide"},{"term":"sap.m.list"},{"term":"sap.m.table"},{"term":"sapui5 apps"},{"term":"sapui5 best practices"},{"term":"sapui5 code editor"},{"term":"sapui5 code validator"},{"term":"sapui5 csv file upload import"},{"term":"sapui5 diagnostics window"},{"term":"sapui5 excel import"},{"term":"sapui5 lint"},{"term":"sapui5 nested view"},{"term":"sapui5 project"},{"term":"sapui5 project structuring"},{"term":"sapui5 xml editor"},{"term":"scp"},{"term":"searching"},{"term":"selected"},{"term":"selected index"},{"term":"setup"},{"term":"sheet.js"},{"term":"smart table"},{"term":"smarttable"},{"term":"speech recognition"},{"term":"spider chart"},{"term":"split app"},{"term":"srv"},{"term":"stage"},{"term":"step by step process to create odata"},{"term":"string"},{"term":"submitbatch"},{"term":"system objects"},{"term":"tab"},{"term":"tag"},{"term":"technical interview questions"},{"term":"test Odata service"},{"term":"tiles"},{"term":"token"},{"term":"transparent"},{"term":"tree table"},{"term":"types of subroutines"},{"term":"types of tables"},{"term":"types of views"},{"term":"ui5"},{"term":"universal worklist"},{"term":"update"},{"term":"upload"},{"term":"use strict"},{"term":"user experience sap"},{"term":"util"},{"term":"v4"},{"term":"validate using headers"},{"term":"validation"},{"term":"value"},{"term":"variable names"},{"term":"version"},{"term":"video tutorial on formatter and inline expressions"},{"term":"video tutorial on globalization"},{"term":"view"},{"term":"view extension"},{"term":"view extensions"},{"term":"view modification"},{"term":"view replacement"},{"term":"viz charts"},{"term":"viz control"},{"term":"vizframe control"},{"term":"voice recognition"},{"term":"walkthrough admin cockpit"},{"term":"web dynpro"},{"term":"webIDE application"},{"term":"webapp"},{"term":"work Area"},{"term":"workflow"},{"term":"xls"},{"term":"xlsx"},{"term":"xml code editor"},{"term":"xml view"},{"term":"xs security"}],"title":{"type":"text","$t":"SAP Development: Mastering SAP UI5, BTP, Fiori, CAPM, RAP, ABAP; and More!"},"subtitle":{"type":"html","$t":"Welcome to the ultimate SAP UI5, BTP, Fiori, CAPM, RAP, ABAP blog! Explore comprehensive tutorials, interview questions, and real-world examples to master SAP development. Elevate your skills in creating stunning UI5 apps, harnessing the power of BTP, and building Fiori applications. Unlock the potential of CAPM, RAP, and ABAP, and learn to integrate seamlessly with the enterprise portal. Whether you're a beginner or an experienced developer, this blog is your go-to resource for SAP expertise!"},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"https:\/\/www.sapui5tutors.com\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/3826368468004556615\/posts\/default\/-\/sapui5+best+practices?alt=json-in-script\u0026max-results=50"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.sapui5tutors.com\/search\/label\/sapui5%20best%20practices"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"}],"author":[{"name":{"$t":"Sanjo Thomas"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06687889588258406801"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"1"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"50"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-3826368468004556615.post-7322926439420789827"},"published":{"$t":"2022-12-08T23:52:00.007-08:00"},"updated":{"$t":"2023-06-07T19:51:35.770-07:00"},"category":[{"scheme":"http://www.blogger.com/atom/ns#","term":"code quality"},{"scheme":"http://www.blogger.com/atom/ns#","term":"git"},{"scheme":"http://www.blogger.com/atom/ns#","term":"maintainability"},{"scheme":"http://www.blogger.com/atom/ns#","term":"sapui5 best practices"},{"scheme":"http://www.blogger.com/atom/ns#","term":"variable names"}],"title":{"type":"text","$t":"How to improve SAP UI5 ​​app code quality and maintainability"},"content":{"type":"html","$t":"\u003Cp\u003E\u003C\/p\u003E\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"color: black; mso-bidi-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EIn\nt\u003C\/span\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003Ehis blog, I briefly\ndescribe some of the things I do to address this issue and how to do the same.\nThese are practically common practices throughout software development,\nincluding some UI5-specific examples. \u003C\/span\u003E\u003Cspan style=\"color: black; mso-bidi-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003C\/p\u003E\u003Cdiv class=\"separator\" style=\"clear: both; text-align: center;\"\u003E\u003Ca href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiF3w3WqBBIWFb4Hj0PEgqSe7ESMEWUOj6ymgFUgbTPDnePLGjHMlIuokpEN49rV4d0K2xEwdIKV0ZLRGhFFH3fDIC9aylIEHifEgh-0wWq7PS33gbtQkXPwViYfae3cyeXBbHWdoAKqX9PbjXlyc0ZAXtRcGubVFH6zPIDegFYbi_FCJY7JMgcHY4\/s1006\/IMG_1910.jpeg\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"\u003E\u003Cimg border=\"0\" data-original-height=\"790\" data-original-width=\"1006\" height=\"157\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiF3w3WqBBIWFb4Hj0PEgqSe7ESMEWUOj6ymgFUgbTPDnePLGjHMlIuokpEN49rV4d0K2xEwdIKV0ZLRGhFFH3fDIC9aylIEHifEgh-0wWq7PS33gbtQkXPwViYfae3cyeXBbHWdoAKqX9PbjXlyc0ZAXtRcGubVFH6zPIDegFYbi_FCJY7JMgcHY4\/w200-h157\/IMG_1910.jpeg\" width=\"200\" \/\u003E\u003C\/a\u003E\u003C\/div\u003E\u003Cbr \/\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E\u003Cbr \/\u003E\u003C\/span\u003E\u003Cp\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EUsing Git \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/b\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EGit is the industry standard for version control. You're trying to improve\nyour UI5 application, and this often means removing code, moving code around,\nor rewriting code. If you don't understand the importance of version control,\nyou should learn Git and read how it works. Change. The only way I'm used to\nremoving files, functions, and rewriting code from a legacy project is knowing\nthat there is some form of copy of the code at every step. If there's one\ntakeaway from this blog, it's that every project should use Git. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EDelete unused functions \/ dead code\u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EThis is really easy! Check the title of the individual function and look\nfor its references throughout the application. Note that it should only search\nthe entire project structure, as it can be called from other controllers or directly\nfrom views. Found something invisible being used somewhere? erase. All projects\nneed to use Git, and there will always be a copy of this functionality, so\nremoving it doesn't mean it's gone forever. You could write the name of the deleted\nfunction in the commit message for easy retrieval later, but often people are\nafraid to delete it, so legacy projects have a lot of dead Code exists.\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EUse clear and descriptive names for functions and\nvariables\u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EFunctions and variables should be named appropriately. Always use a\nfunction named \"returnUserNameFromSettingsModel\" instead of saying\n\"returnUN\". This is because \"UN\" may make sense in context,\nbut the former is more specific and less ambiguous. I realize this example is a\nbit contrived, but it's a common pattern that hurts applications. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EPlease provide complete and unambiguous function and variable names. You\nmight know someone's name today, even if you can't remember it a week from now.\n\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EDon't Repeat Yourself \u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EDon't Repeat Yourself (also known as DRY) is a common software\nengineering principle that is easy to implement. look at your function. Is\nthere a common, repetitive sequence of steps? Suppose you have a step that\nupdates table data.\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ECan this step be performed when removing items from this table, adding\nitems, or updating items? Can the table be updated with the click of a button?\nWhatever the case you will probably have repeated that same 'refresh table'\ncode multiple times throughout your application so you need to extract this\nmethod into a single function and call that rather than repeat the same code\nover and over again. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ENot only will this improve your code quality, maintainability and\nreadability it will also reduce the number of lines of code and make our life\neasier. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EMake use of your base controller\u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ELarger applications (multiple views and controllers) should make use of\na base controller, this is commonly found inside of the larger SAP template\napplications and so shouldn't be that hard to introduce if you're missing one.\n(let me know if you'd like a blog on this subject) \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EThe base controller can then be used to store common functions which are\nused across your application. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EThis is essentially an extension of DRY but making use of our tools at\nour disposal such as the basecontroller as this is common among our\napplications. This tip\/tip can easily get out of hand and leave you with 2K\nrows in your base controller, so use it only when appropriate. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ERefactoring\u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ERefactoring is the process of taking existing code and improving it by rewriting\nthe existing code to produce the same functionality. In software development,\nthis is often written as \"change the internal structure without changing the\nexternal behavior\". This is what I do all the time in my code and projects,\nand you should too. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EDon't just sit down and do one refactor. Refactoring is a discipline, a\ncontinuous process of looking at something and thinking, \"Can I do this better?\"\nIt's something we all strive for. There are many blogs, books and videos about\nrefactoring, so I won't repeat everything that has been said elsewhere. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ERefactoring is one of the most important processes a software developer\ncan incorporate into their workflow, regardless of the programming language or\nframework they use. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003ECreating a utility file\u003C\/span\u003E\u003C\/b\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EYou may create a utility file. A utility file extracts a common process\nand puts all its functionality into a single file. There are examples like\ninstantiating a fragment and putting it in a \"fragmentManager\" file. Then\nyou can use this file as a place to instantiate your fragment. To access the functionality,\nsimply import the fragment manager into your controller. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003EThis goes a long way in reducing your controller or base controller code\nto almost \"boilerplate\" and putting it in a nice little box that you\ncan call upon as needed. This has the same benefits as moving items to the base\ncontroller, but is more specific and helps reduce base controller bloat when\nthings get unwieldy.\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cb\u003E\u003Cspan style=\"background: repeat white; color: black; font-size: 12pt; mso-bidi-font-family: Arial;\"\u003EDirect \u003C\/span\u003Emodel binding \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/b\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial;\"\u003EAlthough\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E I \u003C\/span\u003Erecognize\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E and use \u003C\/span\u003EJSON forms\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E a \u003C\/span\u003Elot,\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E and their use is unavoidable \u003C\/span\u003Eat times,\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E you \u003C\/span\u003Eshould\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E use direct \u003C\/span\u003Eform\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E binding \u003C\/span\u003Ewhenever possible.\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial;\"\u003EThe direct form\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E binding is where the \u003C\/span\u003Efunction\/service collection is\ncalled in\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E your \u003C\/span\u003EXML, without any JavaScript.\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E This is \u003C\/span\u003Etypically\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E achieved \u003C\/span\u003Eby\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E controls such as search \u003C\/span\u003Ewizards, as they typically\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E only \u003C\/span\u003Ereturn\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E lists of data \u003C\/span\u003Ewithout\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E dynamic filters. \u003Co:p\u003E\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial;\"\u003EThis can free up \u003C\/span\u003Edrivers a lot\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E if you have \u003C\/span\u003Ea lot\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E of calls that can easily \u003C\/span\u003Eexist\u003Cspan style=\"-webkit-text-stroke-width: 0px; float: none; font-variant-caps: normal; font-variant-ligatures: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; white-space: pre-wrap; widows: 2; word-spacing: 0px;\"\u003E in XML and automatically update your gateway service.\u003C\/span\u003E\u003Co:p\u003E\u003C\/o:p\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"background: repeat white; color: black; mso-bidi-font-family: Arial;\"\u003E\u003Co:p\u003E\u0026nbsp;\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\n\n\u003Cp class=\"MsoNormal\" style=\"line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;\"\u003E\u003Cspan style=\"color: black; mso-bidi-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-font-family: \u0026quot;Times New Roman\u0026quot;; mso-fareast-language: EN-IN;\"\u003E\u003Co:p\u003E\u0026nbsp;\u003C\/o:p\u003E\u003C\/span\u003E\u003C\/p\u003E\u003Cbr \/\u003E\u003Cp\u003E\u003C\/p\u003E"},"link":[{"rel":"replies","type":"application/atom+xml","href":"https:\/\/www.sapui5tutors.com\/feeds\/7322926439420789827\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"https:\/\/www.sapui5tutors.com\/2022\/12\/how-to-improve-sap-ui5-app-code-quality.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/3826368468004556615\/posts\/default\/7322926439420789827"},{"rel":"self","type":"application/atom+xml","href":"https:\/\/www.blogger.com\/feeds\/3826368468004556615\/posts\/default\/7322926439420789827"},{"rel":"alternate","type":"text/html","href":"https:\/\/www.sapui5tutors.com\/2022\/12\/how-to-improve-sap-ui5-app-code-quality.html","title":"How to improve SAP UI5 ​​app code quality and maintainability"}],"author":[{"name":{"$t":"Sanjo Thomas"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/06687889588258406801"},"email":{"$t":"noreply@blogger.com"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"https:\/\/img1.blogblog.com\/img\/b16-rounded.gif"}}],"media$thumbnail":{"xmlns$media":"http://search.yahoo.com/mrss/","url":"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiF3w3WqBBIWFb4Hj0PEgqSe7ESMEWUOj6ymgFUgbTPDnePLGjHMlIuokpEN49rV4d0K2xEwdIKV0ZLRGhFFH3fDIC9aylIEHifEgh-0wWq7PS33gbtQkXPwViYfae3cyeXBbHWdoAKqX9PbjXlyc0ZAXtRcGubVFH6zPIDegFYbi_FCJY7JMgcHY4\/s72-w200-h157-c\/IMG_1910.jpeg","height":"72","width":"72"},"thr$total":{"$t":"0"}}]}});