Why do we need standards for software development and where to find them​

@ilavriv

Whoami

  • Facebook: ivan.lavriv
  • GitHub lavriv92
  • Competence Lead / Pre Sales Engineer: Perfectial
  • Lecturer: LITS

Technologies which i use

  • Python
  • Ruby
  • JS
  • Ruby
  • Golang
  • Java
  • PHP
  • Rust

How engineers works

  • Standarts
  • Specifications

How we work?

  • IT trends
  • RDD ;)
  • Working with new libraries
  • Discussions about technologies

Typical development process

  • Aglie practices
  • Changes during development
  • Unstable stage of product
  • Chaos

How we can improove our engineering skills?

  • Standarts
  • Specifications

How we should work?

  • Language specifications
  • Frameworks best practices
  • Web standarts
  • Full cycle development standarts
  • Achitecture approach standarts
  • Domain industry standarts

Standarts and specifications providers

  • Communities
  • Comitets
  • Standart organizations (ECMA / ISO)

ECMA - 262

ECMA - example

```js function* generatePreviousMonthsDates(month, year, count) { for (let i = 0; i < count; i++) { yield new Date(year, month - i, 1); } } ```

C++ ISO standart

W3C

  • Web Design and Applications
  • Web of Devices
  • Web Architecture
  • Semantic Web
  • XML Technology
  • Web of Services
  • Browsers and Authoring Tools

WICG

Working group for Web APIs

Web API examples

```js selectRecipientsButton.addEventListener('click', async () => { const contacts = await navigator.contacts.select([ 'name', 'email' ], { multiple: true }); if (!contacts.length) { return; } populateRecipients(contacts); }); ```

Web API examples 2

```js navigator.serviceWorker.ready.then(registration => { registration.periodicSync.register('get-latest-news', { minInterval: 24 * 60 * 60 * 1000, }); }); ```

What about data?

Schema.org

Schema org - bad practice

Schema.org - JSON - LD

```json { "@context": "http://schema.org", "@type": "Restaurant", "address": { "@type": "PostalAddress", "addressLocality": "Sunnyvale", "addressRegion": "CA", "postalCode": "94086", "streetAddress": "1901 Lemur Ave" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4", "reviewCount": "250" }, "name": "GreatFood", "openingHours": [ "Mo-Sa 11:00-14:30", "Mo-Th 17:00-21:30", "Fr-Sa 17:00-22:00" ], "priceRange": "$$", "servesCuisine": [ "Middle Eastern", "Mediterranean" ], "telephone": "(408) 714-1489", "url": "http://www.greatfood.com" } ```

JSON Schema

div

Architecture standarts

18 principles of architecture

  • Business principles
  • Data principles
  • Application principles
  • Technology principles

Technology principles

  • Requirements-Based Change
  • Control Technical Diversity

Data principles

  • Data Security
  • Data is an Asset
  • Data is Shared
  • Data is Accessible
  • Data Trustee
  • Data will be Analysable

More

SE 2004

SWEBOK

SWEBOK objectives

  • Requirements
  • Software development
  • Development knowledge
  • Testing
  • Education
  • .....

Any questions?

Thank you