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 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?
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 - example
```js
function* generatePreviousMonthsDates(month, year, count) {
for (let i = 0; i < count; i++) {
yield new Date(year, month - i, 1);
}
}
```
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,
});
});
```
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"
}
```
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
SWEBOK objectives
- Requirements
- Software development
- Development knowledge
- Testing
- Education
- .....