Téměř každý projekt musí řešit stejné problémy. Nabízí se tedy myšlenka
vložit kódy do jedné sdílené knihovny. Tato myšlenka se jistě líbí
každému, ale stále ne mnoho společností se rozhodne to skutečně udělat.
Rozhodl jsem se nabídnout tuto službu a naprogramovat knihovny kódů
za částečné náklady na projekt a navíc zajišťuji jejich další využití.
Pomocí sdílených knihoven můžete vytvořit Váš produkt a ušetřit peníze.
Vyvíjejte jen aplikační logiku
Externě zajišťovaný kód dělá Váš projekt čistší,
jasnější, snadněji testovatelný a spolehlivější. Tím přímo
ovlivňuje výsledky Vaší aplikace, ale není viditelný pro vaše
zákazníky. Tím, že kód uložíte do sdílené knihovny,
ušetřite spoustu času.
Multiplatformní přístup
Všechny mé knihovny jsou mutiplatformní bez výjimky.
Podporují operační systémy Windows, Linux, OSX, WindowsPhone, Android,
iOS, architektury Intel a ARM.
Webová prostředí (pomocí webassembly na straně klienta) a webová
servery (například moduly do apache2) jsou také podporovány.
Stejné aplikační rozhraní je použito pro všechny operační systémy a
architektury. Je však třeba poznamenat, že
ne všechny verze pro operační systémy a architektury
jsou psány a implementovány současně.
Testování
Moje knihovny budou dobře pokryty unit testy, protože
mohou být použity v různých aplikacích a oblastech, kde
je zapotřebí extrémní spolehlivosti, jako je lékařství, automobilový
průmysl a dalších. K dispozici jsou různé mock třídy
pro snadné spuštění BDD testů Vaší aplikace a
unit testů Vašeho projektu.
Testy jaké si sami neuděláte
Abych byl naprosto upřímný, víme, že pravděpodobně
netestujete některé části kódu příliš důkladně.
Ale i jedna chyba může ovlivnit spolehlivst celé aplikace
a znamenat dodatečné náklady. Tomu se můžete vyhnout pomocí mých
knihoven.
Nejlepší hodnota za Vaše peníze
Jak je to možné? Unifikace umožní sdílení kódu a sdílení
nákladů na vývoj mezi více účastníky. V důsledku toho,
dosáhnete značných úspor času a peněz spolu se značným
zvýšením kvality zdrojového kódu.
1
Ušetřete na hledání chyb
Pokud je kód dobře pokryt unit testy, dá se zřejmě
považovat za spolehlivější.
Kromě toho je každý individuální unit test ukázkou
správného použítí kódu. Úplné pokrytí unit testy
je také předpokladem pro různé
schválení a certifikace. To vám ušetří
značné peníze, jakož i čas na vytvoření
dobrých algoritmů.
2
Ušetřete na zaškolení zaměstnanců
Pokud si najmete nového programátora, není pochyb o tom, že
stráví několik dní učením se stávajícího kódu.
Můžete výrazně snížit tuto dobu, pokud máte dobrou
dokumentaci ke kódu. Ale můžete ji snížit ještě více
pomocí sdílených kódů, které programátor
již zná ze školy, nebo předchozí práce.
3
Ušetřete na certifikacích
Certifikace vašeho softwaru jsou vždy
značné náklady a čas. Ušetřete na vývoji software
tím, že ji budujete rychleji z certifikovaných
součásti.
Kromě toho část kódu specifická pro vaši aplikaci
bude kratší a snadněji certifikovatelná.
4
Ušetřete na multiplatformním přístupu
Se sdílenou knihovnou ode mě, vyvíjíte pro několik platforem s jedním kódem.
I když budete respektovat rozdíly mezi platformami, a budete mít několik aplikací
odlišných, stále bude spousta společného kódu který lze sdílet.
Typicky jdou sdílet datové struktury, zpracování dat i aplikační logika.
I přes rozdíly mezi platformami dosáhnete značných úspor.
Zpracování řetězců
Případová studie ilustrující výhody sdílení kódu
Společnost Montgomery (smyšlený název) měla a vlastně stále má skvělou aplikaci
na management faktur. Když si najala externího programátora, ukázalo se, že svou
práci zvládl, ale práce mu trvala déle. Ztěžoval si, že kód je hůře čitelný,
respektive, několik, často i deset řádků kódu udělá jen jednu elementární operaci
a tak on musí pro svou úpravu studovat více zdrojového kódu. Konkrétně se jednalo
o podobné, ale nikoli stejné bloky kódu při zpracování cest k souborům, dolování dat
parsováním řetězce, vytvoření řetězce z menších kousků a zalamování na určitou délku.
Projektový manažer Montgomery nehodil výtku na kvalitu kódu za hlavu a začal jednat.
Uvědomoval si, že potřebuje zmíněné bloky kódu dostat do nějaké sady funkcí a nejlépe
přesunout do knihovny mimo aplikační logiku. Uvědomoval si ale také, že to vezme jeho
programátorovi spoustu času a před svým šéfem bude takovéto náklady těžko obhajovat,
protože pro uživatele aplikace se nic radikálně nezlepší. Moji nabídku
na optimalizaci kódu považoval v první chvíli za směšnou. Přece nebudeme náš kód s
někým sdílet! Postupem času ale došel k názoru, že sdílení zpracování řetězce firmu
neohrozí, protože know-how produktu v něm prostě není. Desetinové náklady na řešení
tohoto problému rozhodly.
Přesto ale byly náklady na zpracování vyšší než desetinové. Nepočítal totiž z unit testy.
Sami pro sebe by do nového kódu příliš neinvestovali, ačkoliv, chyba v něm by byla pro
jejich zákazníky stejně závažná jako chyba v kterékoli jiné části kódu. Zákazník stejně
neví ve které funkci byla vyhozena výjimka. Nový kód ale bude univerzální, musí vyhovovat
dalšímu různému použití. Proto se testuje důsledněji, než zákazník pro tento konkrétní
případ potřebuje. Nakonec jsem ušetřil firmě Montgomery okolo 80% nákladů. To je
nepochybně vynikající výsledek, když si uvědomíme, že pánem kódu je stále společnost
Montgomery a je schopna jej kdykoli upravit podle potřeb svých zákazníků, aniž by si
dále najímala nějakou další softwarovou společnost.