Jill Clarke

Software Developer


Скачать книгу

development

      Anti-patterns: bad practices in code development, see also code smells

      Applications (Apps): programs that run on a computer or electronic device. Apps that can be downloaded for a mobile phone via an app store are known as ‘native apps’ because they run on a particular mobile platform, for example Android or iOS

      Attribute: (in databases) a data element (field) associated with an entity, for example a customer number, customer name, customer address or current balance

      Behaviour driven development (BDD): a top-down development approach where the user goals and product behaviour are defined collaboratively

      Blockchain: a system where the transactions made using an electronic currency (for example BitCoin) are logged

      Continuous integration (CI): a development practice where small pieces of work are submitted frequently to a shared repository containing the most up-to-date version of a product

      Class (object oriented terminology): a template for something used in your system, for example an order

      Code smells: bad practices that may be used when writing code, see also anti-patterns

      Data dictionary: a list of data items with descriptions of their data type and use in the system

      Database: a collection of logically related data that can be defined and controlled independently of user applications. They are made up of tables (for example ‘Customers’ or ‘Accounts’) which consist of rows (typically one row for each customer or account) which are, in turn, made up of columns (each of which is a piece of data related to the row)

      Database management system (DBMS): the software used for developing and managing a database independently of any programs that use the data

      Deployment: the stage in product development when you ship the product to the customer

      DRY: don’t repeat yourself, a development principle which helps avoid duplicated logic by having one procedure which can be called by other procedures; in other words, a piece of reusable code

      Encapsulation: (object oriented terminology) the concept of an object containing its data and the methods that can be used to read or change that data

      Entity: (in databases) something which an organisation collects and stores data on, for example a customer, an order or a bank account

      Entity relationship diagram (ERD): the diagram part of an ERM

      Entity relationship model (ERM): a mixture of diagrams and text description which describe data usually held in a database

      False feature rich: in simple terms, this means giving the user more than they asked for in the way of software or webpage functionality

      Global positioning system (GPS): a way of determining your location on the planet

      Global variables: variables are the yellow sticky notes of the programming world, they hold data temporarily for use at a later time in your code, then they can be thrown away. A global variable is one that can be used anywhere in your program

      Identifier: (in databases) an entity has an identifier, that is, an attribute that uniquely identifies an occurrence of a particular entity among many occurrences of the same entity; for example the identifier for a customer might be Customer Number. An identifier is sometimes called a Primary Key

      Inheritance: (object oriented terminology) an object can use (inherits) the methods and properties defined by its class

      Instance: (object oriented terminology) a copy of a class; an instance of a class is called an object

      Internet of things (IoT): a system of interrelated or interconnected electronic computer devices; for example, the ability to control your home heating with an app on your phone

      JSON: a simple data-interchange format, often used when sending data across the internet

      Method: (object oriented terminology) something that can be done by an object (a piece of functionality); for example, you can Place an Order (Place is the method, Order is the object)

      Modules: sections or parts of code

      Normalisation: (in database design) a set of rules and guidelines that help you create well-designed databases

      Object: (object oriented terminology) an instance of a defined class, for example the Order object, when you place an order the system will create an order object in the code to represent your particular order

      Pair programming: a technique where two people work/collaborate on the same piece of code

      Patterns: (in code or development) good practice, tried and tested ways of developing code in order to solve a particular problem

      Property: (object oriented terminology) a piece of data relating to an object

      Refactoring: the name given to rewriting a piece of code in order to improve the quality, readability or maintainability of that code

      Relationship: (in databases) the term used for the association between entities, for example a customer is related to an order by the relationship ‘places’

      Robust code: software that is written in such a way that it does not break easily when errors occur

      Scrum: a methodology used to implement Agile practices during product development

      Software or systems development life cycle (SDLC): the lifetime of a product/system, from conception to eventual decommissioning

      SQL: Structured Query Language, a language used to access data from a database

      Stakeholders: people (or sometimes other systems or groups) that have an interest in a product’s development

      Syntactic sugar: a phrase often used about a development libraries capabilities; it refers to the fact that the library provides an easy to use way of doing something. It hides the underlying difficulties of a language or process

      Technical debt: the term used when refactoring is identified as necessary but not carried out

      Test driven development (TDD): a technique where tests are created at the same time (before) the code that they test

      UML: Unified Modelling Language, a set of modelling techniques which are grouped together under one title. They can be used to diagrammatically represent a system

      URL: Uniform Resource Locator, an address on the internet

      Use cases: used to describe what a system does from the standpoint of an external observer, in development this is used to work out what the boundaries of a system are, what is included and what is excluded

      User stories: a technique used widely in modern software development methodologies such as Agile/Scrum. They are simple-to-read definitions of a user’s goal for a product

      Waterfall: a model which shows a traditional (older style) software development life cycle

      PREFACE

      When I first started writing code we were simply known as programmers. The roles in my first work experience as a programmer were well defined:

       1. The analyst analysed the problem.

       2. The designer designed the solution.

       3. The programmer wrote the code (by hand, on COBOL coding sheets) and then wrote the Job Control Request sheet to define what needed running and how.

       4. The punch operator transferred the code onto punched cards.

       5. These were passed to the operator who ran the code on the big old mainframe.

       6. Some days later, the programmer was given a (memory) core dump with error listing, they worked out what was wrong and wrote out the corrections, which went to the punch card operator etc.

      Try transferring that process to modern text messaging: