No Esta Facil
  • 🌎About No Esta Facil
    • πŸ‘¨β€πŸ’»GitHub
    • πŸ“·Photography
    • πŸ—£οΈMy Speaker Bio
    • 🀝Disclaimer
    • πŸ“ˆGuilt Pile
      • Principal.dev
      • Tech Rocks Asia
  • πŸ“šBook Reviews
    • Sports
      • Ben Hogan's Five Lessons
    • Productivity
      • Smart Brevity
      • Nine Lies About Work: A Freethinking Leader’s Guide to the Real World
      • Think Again
      • Mastery
      • Talk Like Ted
      • The Hard Thing About Hard Things
      • The Courage to Be Disliked by Fumitake Koga and Ichiro Kishimi
    • Classic Texts
      • The Book of five rings
    • Technology
      • Amplifying Your Effectiveness: A Gem in Professional Growth Literature
      • AI Superpowers: China, Silicon Valley, and the New World Order
      • The Age of Agile
    • Business
      • Start with No by Jim Camp
      • Zero to One: Notes on Startups, or How to Build the Future by Peter Thiel
    • Health, fitness, and dieting
      • Outlive
    • Culture
      • Solito by Javier Zamora
  • Daily Goods
    • Continuous Education
      • Expanding Your Vocabulary
    • 🌡Cultura
      • Food
        • BBQ’n Like a Pro: Rub Recipes for Pork, Brisket, and Chicken
        • The Ultimate Mashed Potatoes with Bacon and Roasted Garlic
  • 🏌️My Golf Journey
    • Teeing off at ...
      • Oaks Quarry Golf, Riverside, CA
      • Education City Golf Club, Qatar, Doha
      • The Links at Spanish Bay, Pebble Beach, CA
      • Bayonet, Seaside, CA
      • Alta Sierra Country Club, Grass Valley, CA
    • Training
  • πŸ“Monthly Highlights [in TL;DR format]
    • FY23
      • El PeriΓ³dico - July 2023
      • El PeriΓ³dico - December 2023
      • El PeriΓ³dico - April 2023
      • El PeriΓ³dico - March 2023
      • El PeriΓ³dico - February 2023
      • El PeriΓ³dico - January 2023
      • El PeriΓ³dico - December 2022
    • FY24
      • January 2024
      • February 2024
      • March 2024
      • April 2024
    • FY25
  • πŸ‘¨β€πŸ’»The section on Software Engineering
    • ChatGPT Prompts
      • Usages
        • What are some flutter architectures?
      • Prompt Templates
        • Answer Misconceptions
    • Conferences and Bootcamps
      • Google Cloud BootCamp
      • Principal Developer Masterclass
    • Customer Engagement
      • Awards - Customer Hero
    • Engineering Manager
      • Mobile Application Development
        • Flutter Journal
          • App Release Resources
        • Accelerate Your Go-to-Market Strategy with Flutter
      • Understanding the Meaning of Software Requirements
      • Design Principles
        • Coupling
        • Routine
        • Software Design
          • The Trinity of Software Architecture: Coupling, Cohesion, and Information Hiding
      • General
        • Engineering Meetings
          • Steering the Conversation: Effective Strategies for Keeping Meetings Focused and Productive
    • Project Owner
      • Project Pressure, It Happens!
      • Strategic Leadership and Planning
    • Software Engineering
      • Overview
      • Design Patterns
        • Categories of Design Patterns
        • Choosing the Right Design Pattern for Problem-Solving in Programming
        • Singleton
      • Programming Languages
        • JavaScript
      • Toolkits
        • iTerm2
        • Developing on a Windows 11 machine
          • Setting up Typscript env
        • VS Code Extension
        • HTTPie
      • Best Practices
        • Pull Requests (PR's)
    • Solutions Engineer
      • Communication with executives
      • SE Toolkit
        • The Importance of Retros in Integration Processes
        • Meetings
          • Preparing for a Customer Meeting (Project-Based or Recurring)
          • Conducting a Productive Customer Meeting
          • Prepare and Send a Concise and Actionable Meeting Summary
            • Meeting Summary Template
        • Documentation
          • Adding an important notes section
          • Useful Resources
  • πŸ›«Travel
    • Asia
      • Singapore
      • Japan
      • South Korea
      • China
      • India
    • Caribbean Sea
      • Cuba
    • Europe
      • North America
        • Mexico
          • Guadalajara
        • Canada
    • Oceania
      • Fiji
    • Middle East
      • Dubai
      • Qatar
    • South America
      • Brazil
      • Peru
      • Columbia
    • In the planning stage ...
      • Antarctica
      • Africa
Powered by GitBook
On this page
  1. The section on Software Engineering
  2. Engineering Manager
  3. Design Principles

Routine

In software engineering, a "routine" refers to a set of instructions that perform a specific task. It's a fundamental concept in programming and is known by various names depending on the context and programming language being used. The most common terms for routines are functions, methods, procedures, and subroutines. Here's a brief overview of each:

  1. Function:

    • A function is a routine that takes inputs (arguments), performs some computation or operation, and often returns a result. Functions are fundamental in functional programming languages but are used in almost all programming paradigms.

  2. Method:

    • A method is similar to a function but is associated with an object or class in object-oriented programming. Methods often manipulate the data contained in the object they belong to or perform operations related to that object.

  3. Procedure:

    • A procedure is a routine performing a specific task but not returning a value. This term is often used in procedural programming languages. In some contexts, "procedure" and "function" are used interchangeably, though technically, a function is expected to return a value.

  4. Subroutine:

    • This term is often used interchangeably with "procedure" and "function". It refers to a program instruction sequence that performs a specific task, packaged as a unit. This unit can be used in several program parts or other subroutines.

Regardless of the specific term used, the primary purpose of these routines is to reduce code repetition, enhance modularity, and improve readability. By encapsulating specific functionalities into routines, programs become more organized and easier to understand, maintain, and debug. Routines also facilitate code reuse and can help implement abstraction, a key principle in software engineering.

The following books provide a comprehensive overview of fundamental programming concepts, including routines and their various forms in different programming paradigms. They are considered standard references in the field of computer science.

  1. "Structure and Interpretation of Computer Programs" by Harold Abelson and Gerald Jay Sussman.

  2. "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

  3. "The Art of Computer Programming" by Donald E. Knuth.

PreviousCouplingNextSoftware Design

Last updated 1 year ago

πŸ‘¨β€πŸ’»