algotech's Introduction
Poznámky: 1. Algoritmus pro převod desetinného čísla na zlomek by měl dle Binga jít napsat i pomocí největšího společného dělitele, ale to mi nefunguje a nemám chuť hledat, kde je problém, když to dělám zadarmo. Patrně by to bylo i efektivnější než cykly. 2. Co se týče coding standardu, tak dle Vaší ukázky to vypadá, že komentáře, typehinty apod. jsou nežádoucí. Jestli mají být závorky na stejném řádku nebo na novém, odsazení apod. se dá v PHPStormu řešit snadno nadefinováním pravidel. Ve Sportisimu jsme měli nějaká nadefinovaná nějaká pravidla a kromě toho jsme si mohli klidně nadefinovat svoje, aby člověk kód viděl tak jak mu to vyhovuje a před pushnutím do gitu zmáčknout nějakou klávesovou kombinaci, která to přeformátovala podle firemního coding standardu, aby byl spokojen šéf. Vlk (šéf) se nažral (v gitu to měl dle svého standardu) a koza zůstala celá (programátor si mohl pracovat na lokále podle svého standardu, který si nadefinoval). Fungovalo to zcela bez problémů. Považuji za nesmysl tohle testovat u pohovoru - předpokládám, že máte pro PHPStorm definovaný nějaký standard, který si programátor do něj nahraje a pak to stisknutím nějaké klávesové kombinace přeformátuje. 3. Otázka je, co je základní tvar u Smíšeného zlomku (předpokládám, že zápis 1 1/3) a co se má stát, když do Zlomku pošlu třeba 4/3) a jestli čísla, která lezou do operací mohou být i desetinná nebo jen celá. Jelikož jsem nedostala odpovědi ani na ty předchozí dotazy, které jsem psala, tak jsem usoudila, že bych asi nedostala odpověď ani na tyto, proto jsem si nadefinovala, že Zlomek musí mít čitatele menšího než jmenovatele, jinak to vyhodí exceptionu, že se má použít smíšený zlomek a do operací mohou lézt i desetinná čísla (ta se převedou na zlomek). 4. Vše je projeto pomocí PHPStanu level 9. 5. Z návrhových vzorů je použit Singleton v Operation a Factory ve FractionFactory. Factory pozná podle vstupních parametrů, zda má vytvořit instanci třídy Zlomek nebo Smíšený zlomek. Singleton nemám ráda, protože pokud se má důsledně ošetřit, aby fakt nešla vytvořit druhá instance ani při spuštění více vláken, tak je to dost pracné a časově náročné a z původního jednoduchoučkého návrhového vzoru se stává podstatně složitější a méně efektivní. Použila jsem ho jen proto, abyste viděli, že vím, že něco takového existuje. 6. Jelikož jsem se nedočkala odpovědi na dotaz, zda "neveřejné" = privátní nebo to může být i protected, tak jsem zvolila tu horší variantu privátní, což znemožňuje dědičnost :-(. A abych se nemusela psát 2x s metodou reduce(), která má být privátní a ve Smíšeném zlomku je jen upravená reduce() ze Zlomku, tak jsem ji hodila do traity, i když dědičnost by dle mne byla mnohem lepší řešení (traity jsme ve Sportisimu měli dokonce výslovně zakázané používat).
algotech's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.