All 3 Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. This first session creates the foundation for the 2nd and 3rd Clean Code presentation on Dependency Injection, as it explains expected base knowledge. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs.
Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented design patterns and best practices which will make you write better and more easily maintainable code, seeing code in a holistic way.
You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, patterns & practices benefits are explained. This presentation is based on C# and Visual Studio 2012. However, the demonstrated patterns and practice can be applied to every other programming language too.
Note: Moving forwards this presentation will be updated with the latest version of the slides for the last event I did the presentation instead of creating new separate slide decks here on SlideShare.
Presentation dates and locations:
2015-10-03 Silicon Valley Code Camp, San Jose, CA
2015-06-27 SoCal Code Camp - San Diego, CA
2014-11-14 SoCal Code Camp - Los Angeles, CA
2014-10-18 Desert Code Camp - Chandler, AZ
2014-10-11 Silicon Valley Code Camp, Los Altos Hills, CA
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Vladimir Romanov - How to write code that is easy to read and change? What should you do when you see a piece of code written years ago which is hard to understand? In my experience, this boils down to 4 principles that I would like to share along with some examples in Apex
Presentación para la charla sobre el libro de Robert C. Martin, Clean Code.
Esta presentación la impartí en CyLicon Valley, aquí tenéis el video con el audio de la charla => https://www.youtube.com/watch?v=1Fss1jBfc3g
"Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way." In this knolx session, a few important topics for having clean code are covered. Basically the following topics - Meaningful name, Functions, Comments and Classes.
Presentation I held before my colleagues about the book Clean Code (http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882).
It contains the highlights of several chapters and hint/guidelines a developer should know.
A presentation I gave in Expert Days 2012. In this presentations I explain how most of the features in the C# language work, including Iterators, Lambdas, Linq, Dynamics, and more.
Presentation on writing clean and maintainable good. I have present really simple steps to write high quality code and share many more benefit of writing clean code.
All 3 Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. This first session creates the foundation for the 2nd and 3rd Clean Code presentation on Dependency Injection, as it explains expected base knowledge. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs.
Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented design patterns and best practices which will make you write better and more easily maintainable code, seeing code in a holistic way.
You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, patterns & practices benefits are explained. This presentation is based on C# and Visual Studio 2012. However, the demonstrated patterns and practice can be applied to every other programming language too.
Note: Moving forwards this presentation will be updated with the latest version of the slides for the last event I did the presentation instead of creating new separate slide decks here on SlideShare.
Presentation dates and locations:
2015-10-03 Silicon Valley Code Camp, San Jose, CA
2015-06-27 SoCal Code Camp - San Diego, CA
2014-11-14 SoCal Code Camp - Los Angeles, CA
2014-10-18 Desert Code Camp - Chandler, AZ
2014-10-11 Silicon Valley Code Camp, Los Altos Hills, CA
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Vladimir Romanov - How to write code that is easy to read and change? What should you do when you see a piece of code written years ago which is hard to understand? In my experience, this boils down to 4 principles that I would like to share along with some examples in Apex
Presentación para la charla sobre el libro de Robert C. Martin, Clean Code.
Esta presentación la impartí en CyLicon Valley, aquí tenéis el video con el audio de la charla => https://www.youtube.com/watch?v=1Fss1jBfc3g
"Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way." In this knolx session, a few important topics for having clean code are covered. Basically the following topics - Meaningful name, Functions, Comments and Classes.
Presentation I held before my colleagues about the book Clean Code (http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882).
It contains the highlights of several chapters and hint/guidelines a developer should know.
A presentation I gave in Expert Days 2012. In this presentations I explain how most of the features in the C# language work, including Iterators, Lambdas, Linq, Dynamics, and more.
Presentation on writing clean and maintainable good. I have present really simple steps to write high quality code and share many more benefit of writing clean code.
Javascript Programming according to Industry Standards.pptxMukundSonaiya1
Workshop by Foster that helps students to get a glance on how javascript programming is done today in industry taking care of some important industry standards.
The session conducted by DSC DYPCOE Pune. It's based on the book "Clean Code" by Robert C. Martin.
Any fool can write a code which machine can understand, good programmer write a code which humans can understand.
If you want to get into coding, there are chances that you’ll come across several problems that could be discouraging, mainly in tutorials owing to your lack of previous experiences in programming. Even theprogramming classes for beginners might appear difficult if you are not aware of the below-mentioned basic programming concepts.
Relevancy and synonyms - ApacheCon NA 2013 - Portland, Oregon, USALeonardo Dias
A presentation on how to produce better semantic relevancy in the context of using stemmers, synonyms and raw content in a dismay field weighting configuration.
This presentation introduces the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and methods are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are explained. Attention is given also to the “refactoring” as a technique for improving the quality of the existing code. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced.
Various tips on how to keep your writing simple (and straightforward) for all audiences, but particularly when you are writing English content that will be translated, or consumed by non-native English speakers.
This presentation was delivered at the Australian Society for Technical Communication (ASTC) annual conference in October, 2018.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
In the ever-evolving landscape of technology, enterprise software development is undergoing a significant transformation. Traditional coding methods are being challenged by innovative no-code solutions, which promise to streamline and democratize the software development process.
This shift is particularly impactful for enterprises, which require robust, scalable, and efficient software to manage their operations. In this article, we will explore the various facets of enterprise software development with no-code solutions, examining their benefits, challenges, and the future potential they hold.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Clean code: meaningful Name
1.
2. Clean Code : Meaningful Name
Presented by
Md. Nahidul Hasan
3. Meaningful Name
■ Names are everywhere in software.
■ We name our variables, our functions, our arguments, classes, and packages.
■ We name our source files and the directories that contain them.We name our jar files and war files and ear files.
■ We name and name and name. Because we do so much of it, we’d better do it well
“The hardest thing about choosing good names is that it requires good descriptive skills and a shared cultural background.
This is a teaching issue rather than a technical, business, or management issue. As a result, many people in this field do not do it
very well.”
4. Use Intention-Revealing Names
■ Choosing good names takes time but saves more than it takes.
■ Take care with your names and change them when you find better ones.
■ The name of a variable, function or class should answer the big questions such as why it exists, what it does, how it
is used.
■ If a name requires a comment, then the name does not reveal its intent. For example, these names specify what is
being measured and the unit of that measurement:
int d // elapsed time in days
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
5. Make Meaningful Distinctions
■ Distinguish names in such a way that the reader knows what the differences offer. For example, the two classes
ProductInfo and ProductData have different names but the names don’t mean anything different, because here
Info and Data are indistinct noise words.
■ More Example :
getActiveAccount();
getActiveAccounts();
getActiveAccount();
getAllActiveAccounts();
6. Use Pronounceable Names
■ Our minds have evolved to deal with spoken language, so take advantage of that when creating names.
■ Also, if you can’t pronounce it, you can’t discuss it without sounding like an idiot.
■ As an example, note the benefits of using the second version of this variable instead of the first version
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
/* ... */
};
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
/* ... */
};
7. Use Searchable Names
■ Names should be easy to locate across a body of text.
■ The length of a name should correspond to the size of its scope.
■ If a variable or constant might be seen or used in multiple places in a body of code, it is imperative to give it a
search-friendly name.
for (int j=0; j<34; j++) { s += (t[j]*4)/5;
}
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j=0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] *
realDaysPerIdealDay;
int realTaskWeeks = (realdays /
WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
8. Avoid Encodings
■ Encoding type or scope information into names simply adds to the burden of deciphering. They are a mental
burden, seldom pronounceable and easy to mistype.
■ Hungarian Notation (HN) adds nothing to Java, as the objects are strongly typed and IDEs detect type errors
long before compilation. A variable that has its type changed, but accidentally not had its HN name changed can
be misleading.
9. Avoid Mental Mapping
■ Readers should not need to mentally translate your names into other names they already know/are familiar
with. This problem generally arises from a choice to use NEITHER problem-domain terms nor solution-domain
terms (see more, below, on problem-domain and solution-domain).
■ Single-letter variable names are really only okay for use as loop counters if their scope is very small and no other
names can conflict with them; plus they are traditional.
■ In general programmers are pretty smart people. Smart people sometimes like to show off their smarts by
demonstrating their mental juggling abilities. However:
“One difference between a smart programmer and a professional programmer is that the professional understands
that clarity is king. Professionals use their powers for good and write code that others can understand.”
10. Class Names
■ Classes and objects should have noun or noun-phrase names, like Customer,WikiPage, Account and
AddressParser.
■ But avoid names like Manager, Processor, Data or Info in the name of a class.
■ A class name should not be a verb.
Method Names
■ Methods should have verb or verb-phrase names, like deletePage or save.
■ Accessors and mutators, and their predicates, should be named according to JavaBeanstandards
11. Don’t Pun
■ Don’t deliberately or inadvertently re-use the same term where its semantic meaning in the code is different; for
example using the term add in several classes, for “consistency”, when you are in fact not using it in the same
sense.
Use Solution Domain Names
■ The people who read you code are programmers, so go ahead and use solution domain terms, such as
AccountVisitor, where Visitor means the VISITOR pattern, or JobQueue.
Use Problem Domain Names
■ When there is no programmer-eese for what you are doing, use the name from the problem domain. However:
The code that has more to do problem domain concepts should have names drawn from the problem domain.
12. Add Meaningful Context
■ Most names are not meaningful in and of themselves. So:
You need to place names in a context for your reader by enclosing them in well-named classes, functions or namespaces.
Naming within an Unclear Context:
private void printGuessStatistics(char candidate, int count) {
String number;
String verb;
String pluralModifier;
if (count == 0) {
number = "no";
verb = "are";
pluralModifier = "s";
} else if (count == 1) {
number = "1";
verb = "is";
pluralModifier = "";
} else {
number = Integer.toString(count);
verb = "are";
pluralModifier = "s";
}
String guessMessage = String.format("There %s %s %s%s", verb,
number, candidate, pluralModifier);
print(guessMessage);
}
13. Add Meaningful Context
Naming within a Clear Context:
public class GuessStatisticsMessage {
private String number;
private String verb;
private String pluralModifier;
public String make(char candidate, int count)
{
createPluralDependentMessageParts(count);
return String.format("There %s %s %s%s", verb,
number, candidate, pluralModifier);
}
private void createPluralDependentMessageParts(int
count)
{
if (count == 0) {
thereAreNoLetters();
} else if (count == 1) {
thereIsOneLetter();
} else {
thereAreManyLetters(count);
}
}
private void thereAreManyLetters(int count)
{
number = Integer.toString(count);
verb = "are";
pluralModifier = "s";
}
private void thereIsOneLetter() {
number = "1";
verb = "is";
pluralModifier = "";
}
private void thereAreNoLetters() {
number = "no";
verb = "are";
pluralModifier = "s";
}
}
14. Pick One Word per Concept
■ Pick and use one word for abstract concept and stick with it.
■ A consistent lexicon is a great boon to the programmers who use your code.
■ Example: What’s the difference between fetch, retrieve and get?
Don’t Be Cute
■ Don’t be too clever or humourous with your names. Don’t use a function name likeholyHandGrenade, when you
mean deleItems.
■ For example, don’t use the name whack() to mean kill()
15. Don’t Add Gratuitous Context
■ Shorter names are generally better than longer ones, so long as they are clear.
■ Add no more context to a name than is necessary.
■ Examples: The names accountAddress and customerAddress are fine names for instances of the class Address
but could be poor names for classes. Address is a fine name for a class. If you need to differentiate between MAC
Addresses, port addresses, and Web addresses, you might consider PostalAddress, MAC, and URI.
■ In an imaginary application called “Gas Station Deluxe,” it is a bad idea to prefix every class with GSD.
A mailingadress classs for in GSD’s accounting Module - GSDAccountAdress
A mailing address for cutomer contact - GSDAccountAdress