Sdílený kód

Proč sdílet kód

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.