9 kroků: Výběr technologického zásobníku pro vaši webovou aplikaci

Plánování nové webové aplikace může být obtížné (Foto: Luca Bravo on Unsplash).

Jste zakladatel, CEO, CTO, konzultant nebo jiná zúčastněná strana, která se musí rozhodnout, jak postavit softwarový produkt? Máte potíže s rozhodováním o tech zásobníku pro vaši webovou aplikaci? Pokud používáte jazyk Python nebo Java? Je node.js nebo Flask / Django správnou volbou pro webový rámec? Jaká je nejlepší možnost front-end: Angular, React nebo VueJS? A co databáze - MySQL, Postgres nebo MongoDB? Měli byste se hostit s Apache nebo Nginx na DigitalOcean, nebo prostě jít s Amazon AWS? Možná byste raději pracovali s PaaS jako Heroku?

Pokud máte milion otázek a nevíte, kde začít, může vám tento článek pomoci při rozhodování.

1. Zachovejte to jednoduché. Buďte agilní!

Technologie, kterou vyberete, se často nikdy nezavrátí, protože samotný produkt selže. Mnoho startupů jde s technologií škálování a tráví čas a energii robustním sestavením, jen aby zjistili, že pro jejich produkt neexistuje trh.

Kdykoli chcete sestavit produkt od nuly, nejlepší volbou je jít s nejjednodušším řešením. Postačující stránka s Wordpressem nebo Unbounce by mohla stačit. Možná by fungovala i statická stránka předstírající, co se snažíte vyřešit. Je důležité posoudit zájem o váš produkt dříve, než projdete problémem jeho výroby. Je v pořádku, pokud se technologie pro důkaz konceptu ukončí a liší se od technologie, kterou nakonec použijete.

Jakmile víte, že váš koncept bude fungovat, můžete s výrobkem výrobku postupovat kupředu. Během této fáze zůstaňte agilní. Nikdy byste neměli trávit několik měsíců sestavováním 100stránkové specifikace systému (v němčině „Pflichten- und Lastenheft“) pro vývojáře, zejména pokud to předpokládá 6 nebo 12 měsíců pro realizaci produktu. Výsledkem bude pravděpodobně produkt, který je zastaralý nebo dodaný příliš pozdě.

Přemýšlejte: první věci jako první. Nechte běžet základní stránku, poté první funkci a poté druhou. Výhodou tohoto postupu je, že můžete vyhodnotit pokrok v reálném čase a podle potřeby změnit směr. Minimalizujete své riziko, protože váš systém již běží. Možná ještě nemáte všechny funkce, které jste si představovali, ale běží!

2. Přemýšlejte o svých osobních požadavcích

Mějte na paměti svůj problém. Zvolená technologie by měla záviset na problému, který chcete vyřešit. Některé věci se dají dělat lépe v jednom jazyce než v jiném - například Python je skvělý pro výpočet a statistiku.

Uživatelé před technologií

Produkty by měly být postaveny pro své uživatele. Jaký produkt chcete vytvořit? Jak můžete vytvořit nejlepší uživatelský dojem? Přemýšlejte o tom, kdo bude váš systém používat. Budou pracovat na stolních počítačích nebo tabletech? Budou mít přístup k věcem prostřednictvím mobilního připojení (jako 60% všech uživatelů v současné době)? Měla by existovat aplikace pro stolní počítače? Jaké prohlížeče se budou používat nejčastěji?

Rychlost a výkon

Máte (kromě) kritéria? Bude software spuštěn ve vašem intranetu? V takovém případě by počáteční doby načítání mohly být menší než optimální.

A Znovu, pokud je to možné, vždy přemýšlejte agilně. Je výkon opravdu problémem, se kterým se právě teď musíte vypořádat? Pokud máte v úmyslu být velký, můžete vždy začít s Platform-as-a-Service (jako Heroku), než zlepšíte výkon pomocí své vlastní infrastruktury. Místo toho, abyste trávili čas a peníze, i když jste stále velmi malí, se můžete starat o výkon, jakmile překročíte příslušný limit velikosti.

Migrace a starší systémy

Máte databáze a / nebo data, která je třeba migrovat? Máte starší systémy, které je třeba přenést do nového systému? Tyto a podobné úvahy je třeba prozkoumat a vyhodnotit.

Bezpečnostní

Bezpečnost by neměla být nikdy opomíjena. V závislosti na druhu dat, se kterými pracujete, může být zabezpečení nejdůležitějším faktorem. Zjistěte, proč je třeba něco zabezpečit, než se rozhodnete, jak je zabezpečit. Ale pamatujte, že technologie není všechno - mějte na paměti, že zabezpečení závisí především na dovednostech vašich vývojářů, pracovním prostředí a prováděných zásadách.

3. Jděte na open-source technologie

Při vytváření nového softwaru byste měli hledat řešení s otevřeným zdrojovým kódem. Brání vám v tom, abyste museli stavět všechno od nuly; ušetří vám to spoustu času a je pravděpodobně bezpečnější (mnoho hlav je lepší než málo). Budete se také moci soustředit na obchodní stránku věcí a dosáhnout toho, aby váš produkt vynikal. Nezapomeňte vrátit komunitě s otevřeným zdrojovým kódem!

Jakmile si vyberete potenciální technologii, měli byste projít kontrolním seznamem. Jaký druh licence má? Má jazyk nebo rámec funkce, které vy nebo vaši vývojáři potřebujete? Kolik klíčových vývojářů existuje? Můžete se podívat na přispěvatele nebo hvězdy v úložišti Github a na to, jak se postupem času vyvíjeli. Je zdrojový kód snadno pochopitelný, pokud potřebujete jít hlouběji a zkontrolovat algoritmus pod kapotou? Je dokumentace komplexní, je technika důkladně otestována a jsou k dispozici startovací kotlové desky, které vás povedou rychle?

Další důležitá otázka: Jak se tým za technologií vypořádá s bezpečnostními problémy? Existuje e-mailová adresa pro hlášení chyb zabezpečení?

4. Zkontrolujte ekosystém

Každá technologie má ekosystém složený z lidí a nástrojů.

Jak velký je ekosystém za jazykem nebo rámcem? Kolik otázek, konferencí a online tutoriálů Stackoverflow (např. Udemy) je k dispozici? Co říká Google Trends? Roste zájem o software? Kolik balíčků (npm, PyPi atd.) Je k dispozici a mají licence, se kterými můžete pracovat?

Víte o úžasných úžasných seznamech? Pomáhají vám kopat do ekosystému jazyka nebo rámce. Můžete zkontrolovat návody, články a důležité balíčky týkající se dané technologie. Existují seznamy pro Django, node.js, React, Angular a mnoho dalších.

Také důležité: vítá komunita nové členy a jak aktivní je komunita? Jaká je podpora pro uživatele a vývojáře? Existuje seznam adres, chatovací kanál, místnost Slack nebo systém prodeje vstupenek? Jsou lidé blogování o technologii?

5. Dlouhodobé trendy a podpora

Životní cykly trhu

Každá technologie má životní cyklus. Chcete si vybrat vyspělé technologie, protože jsou spolehlivé. Měli byste zkontrolovat nejnovější technologický radar, abyste získali představu o tom, jaké jsou technologie budoucnosti; to vám může pomoci rozhodnout, zda je přijmout nebo pozastavit. Technologický radar je zdarma a dělí technologie do kategorií technik, platforem, nástrojů a jazyků a rámců. Zdroj byste však měli používat opatrně, protože poskytované informace nejsou nastaveny do kamene.

Dalším nápadem je zkontrolovat průmyslově oblíbené zásobníky technologií stackshare.io nebo techstacks.io. Podívejte se, co Airbnb používá nebo co se lidem líbí o AngularJS a kdo to používá. Pokud si nejste jisti technologií, můžete hledat alternativy. Zde je seznam alternativ k Angular JS na alternativeto.net.

Dlouhodobá podpora dodavatelů

Vypadá to, že dodavatel technologie vypadá, že tu bude nějakou dobu? Podporují velké společnosti rozvoj dotyčných technologií? Google je za Angular a Facebook za React. To znamená, že by mělo dojít k určitému pokroku, dokud se společnost nakonec nerozhodne zrušit svou podporu (ano, může se to stát). Ale čím větší je komunita, tím větší je šance, že se věci budou nějakou dobu držet.

Některé aplikace mají verze s dlouhodobou podporou. Určené verze jsou poté opatřeny opravami chyb pro dané časové období. Měli byste také zkontrolovat webovou stránku technologie: jak se zpracovávají aktualizace? Jak snadný je proces aktualizace / migrace? Existovaly zvláště nekompatibilní verze (jako Angular 1 a Angular 2)?

6. Lidské zdroje a nábor

Jaké vývojáře máte na své straně? Pokud se musíte rozhodnout pro front-end technologii a máte tři silné úhlové vývojáře, měli byste s nimi pravděpodobně spolupracovat. Rychlý pohyb může být důležitý a je docela výhodné mít lidi, kteří jsou ve své zóně pohodlí, místo aby se učili nové technologii. Další výhodou jsou také stávající znalosti ekosystému.

Pokud jde o nábor, ujistěte se, že jste zkontrolovali následující: můžete najít dostatek kvalitních vývojářů pro požadovanou technologii? Kolik je musíte zaplatit? Pracují velké společnosti se stejnými technologiemi a chytají všechny dobré vývojáře? Existují vývojáři, kteří jsou většinou etablovaní profesionálové, nebo je obtížné rozlišit mezi nimi a skripty? Dobrý vývojář Java může být snazší najít než dobrý vývojář Ruby on Rails nebo PHP. Pro svůj výzkum můžete zkontrolovat portály XING, LinkedIn nebo hledání zaměstnání. Můžete také zkontrolovat trendy v práci (např. Porovnání Angular s React).

Je tato technologie snadná na učení? Snadný jazyk vám pomůže najít a školit juniorské vývojáře a celý ekosystém by mohl přilákat více lidí.

V neposlední řadě: skvělým zdrojem v oblasti lidských zdrojů je průzkum Stackoverflow Developer. Poskytuje skvělý přehled typů vývojářů, použitých technologií a zpráv o platech. Podívej se!

7. Budete dostatečně flexibilní?

Podrobnost služby

Věci se mění mnohem rychleji, než tomu bylo před 20 lety. Lidé dlouho pracovali především na stolních počítačích a se systémem Windows. Pravděpodobně tomu tak nebude v dalších 10 letech. Vámi vybraná technologie s vámi pravděpodobně zůstane po dobu 5 až 10 let: je to dlouhá doba a nemůžete si být jisti, jak se věci budou vyvíjet. Proto musíte být připraveni na změnu technologií, když to bude potřeba.

Mysli granulárně, přemýšlej v malém balení a přemýšlej o oddělení obav. Měli byste oddělit služby, back-end a front-end na menší aplikace a mikro-služby. Měli byste být schopni snadno vyměnit technologie, když pro vás již ty stávající nefungují. Podívejte se na koncepty, jako je architektura orientovaná na služby (SOA) a návrh založený na doméně (DDD).

Dokážete na kauci? Bude to měřítko?

Máte vždy přístup k datům? Je vždy možné exportovat vaše data, pokud potřebujete změnit technologie? Má technologie API umožňující flexibilitu na druhém konci? Možná chcete otevřít aplikaci pro své klienty nebo zákazníky, nebo chcete postavit mobilní aplikace, desktopové aplikace nebo jiné systémy na vrcholu zvolené technologie.

8. Jaké to je?

Nechte své vývojáře, aby se podívali na technologii, nebo to sami. Jaké jsou vaše první dojmy? Připravte si pilotní nastavení, vyzkoušejte stávající bojlerové desky nebo (pokud je to možné) vytvořte malý testovací projekt. Pokud půjdete s podrobnými službami, můžete si s danou technologií vybudovat novou malou službu a zjistit, jak to funguje.

Existují také aplikace v reálném světě, které vám mohou lépe porozumět rozdílům. TodoMVC je skvělý projekt - jednoduchá aplikace Todo je realizována s různými kostry jazyka Javascript a můžete se podívat na architekturu zdrojového kódu. Existuje celá řada příkladů a můžete porovnat Angular s React nebo Vue s Ember.

Úžasný projekt RealWorld jde ještě dále: jedná se o plnohodnotnou aplikaci typu střední velikosti využívající Django nebo node.js pro back-end a Angular nebo React pro front-end. Můžete si o tom přečíst úvodní článek od Eric Simons.

9. Začněte

Pokud jste malý start, dostat se na trh je důležitější než mít perfektní technologii. Soustřeďte se spíše na své podnikání a marketing než na předběžnou optimalizaci všech technologií potřebných pro zvládnutí množství uživatelů, které má Facebook. Pravděpodobně nebudete mít všechny potřebné znalosti v počátečním stádiu, ale můžete vyladit a optimalizovat věci nebo měnit technologické balíčky, jak rostete (a máte potřebný rozpočet).

Jako podnik se věci mohou lišit. Rozhodnutí bude většinou stejně politické - lidé ve vaší společnosti musí být s vaším rozhodnutím v pořádku. Vedení (a doufejme, že interní / budoucí vývojáři) jsou pravděpodobně nejdůležitějšími zúčastněnými stranami, které mají na palubě.

Je důležité mít na paměti, že kvalita je věcí správného dělat věci. Technologie není jediná věc, na které záleží: potřebujete správný design, správné požadavky, správné testovací postupy atd. Nejdůležitější věcí je zajistit, abyste se v budoucnu neomezovali co do rozsahu nebo nepřecházeli na jinou technologii.

Další zdroje:

  • Jak vybrat správné technologie pro váš softwarový projekt (přehledný seznam odrážek)
  • Jak si vybrat ten správný technologický zásobník pro vaši aplikaci (pěkný článek o rozhodnutí v závislosti na velikosti / stavu společnosti)
  • 5 tipů pro výběr technologického balíčku vašeho Startupu (pěkný seznam a varování techniků Stirrers)

Děkujeme za váš zájem. Zapomněl jsem na něco důležitého? Máte jiný názor? Vždy jsem rád, že získám zpětnou vazbu.

Sledujte mě na Twitteru a získejte aktualizace a další: @jensneuhaus -