Razvijamo z mavrico primernih tehnologij
Tehnološki napredek leti z močjo eksponentne funkcije, ali mu sledite?
Izbira primerne palete tehnologij je ključna za vsak razvojni projekt. V našem podjetju pokrivamo široko področje, od skalabilnih spletnih aplikacij do razvoja za mobilne in vgradne naprave. Takšna širina nam daje dober pregled nad množico pristopov, ki izhajajo iz uporabe različnih programskih jezikov in tehnoloških rešitev. Razvijamo tako preproste aplikacijske rešitve, kot tudi bolj zahtevne, ki vključujejo veliko različnih tehnologij, nudimo pa tudi svetovanje na tem področju.
Mavrica odprtih tehnologij
Pri razvoju prisegamo na odprte rešitve, saj smo mnenja da odprt ekosistem omogoča hitrejšo rast inovacij in izmenjavo znanja. Če zaobjamemo celoten spekter z začetkom pri spletnih aplikacijah, naše trenutne izkušnje obsegajo naslednje tehnologije:
- Python: Izjemno dinamičen programski jezik, ki ga uporabljamo za razvoj vseh naših spletnih rešitev, predvsem v kombinaciji z ogrodjem Django. Ponuja širok nabor knjižnjic za vrsto funkcionalnosti in je prilagodljiv v največji možni meri.
- Izkušnje imamo tudi z razvojem spletnih aplikacij v PHP, vendar se ga za nove projekte izogibamo zaradi slabe zasnove jezika. Prav tako imamo izkušnje z razvojem razširitev PHP interpreterja v C-ju za zmogljivostno kritične dele kode.
- PostgreSQL: Zelo razširljiva in bogata relacijska podatkovna baza, ki poganja tiste dele naših aplikacij, ki zahtevajo striktno konsistenco in visoko razpoložljivost.
- MongoDB: Nerelacijska dokumentno-orientirana podatkovna baza, ki s podporo samodejnega shardinga omogoča horizontalno skalabilnost, hkrati pa z enostavno replikacijo omogoča visoko razpoložjivost. Največja prednost pa je zagotovo bogat nabor podatkovnih tipov, ki omogoča gradnjo gnezdenih shem znotraj enega samega dokumenta, ki skupaj s pametnim načrtovanjem omogoča doseganje velikih zmogljivosti na račun nekoliko manj striktne konsistence.
- Solr in Elastic Search: Dve rešitvi, ki temeljita na Lucene in omogočata hitro iskanje po polnem besedilu miljonov dokumentov.
- Izkušnje imamo tudi z integracijo elektronskih plačilnih sistemov kot so PayPal, MoneyBookers in Moneta.
- C++: Programski jezik, ki združuje veliko različnih paradigm programiranja, z odličnim prevajalnikom GCC in ogrodjem Boost.ASIO pa omogoča razvoj kompleksnih in odzivnih omrežnih aplikacij. Z roko v roki gre s sistemom za gradnjo CMake, ki omogoča pregledno organizacijo programskih rešitev. Skupaj z močnim ogrodjem Qt pa omogoča razvoj bogatih aplikacij z grafičnim vmesnikom za platforme Windows, Linux, Mac OS X, Symbian in MeeGo.
- Java: Za razvoj aplikacij za mobilno platformo Android.
- Linux: Kot operacijski sistem, ki poganja naše strežnike v virtualiziranih okoljih OpenVZ in LXC ter kot platforma za razvoj aplikacij za vgradne naprave (v kombinaciji z distribucijo OpenWrt).
- Puppet: Za učinkovito centralizirano shrambo konfiguracije za celotno gručo strežnikov.
- Subversion in Mercurial: Za dober razvoj je ključno sodelovanje več razvijalcev, kjer je nujno potreben dober sistem za nadzor različic. Skupaj z razširljivim ogrodjem Trac je možen učinkovit in pregleden nadzor nad projekti.
Pri silovitem tehnološkem napredku je vseh rešitev preveč, da bi jih vse omenjali na tem mestu. V kolikor se vam zdi, da smo kakšno pomembnejšo izpustili, nas le pocukajte za rokav. Poleg samega razvoja ponujamo tudi svetovanje pri delu z omenjenimi rešitvami in zasnovo kompleksnejših sistemov.
