Documente Academic
Documente Profesional
Documente Cultură
43
2016
www.todaysoftmag.ro
www.todaysoftmag.com
No.
36Ianuarie
June 2015
www.todaysoftmag.ro
www.todaysoftmag.com
TSM
T O D A Y
S O F T WA R E
MAG A Z I NE
i.
De la Zero to RESTful n 4 pa
Design de API
Frontend Mashup
n cutare de talent
SymfonyCon 2015
10 nouti fiscale cu impact pentru
antreprenori valabile din 2016
Simplon Romnia te nva s faci
aplicaii mobile n 3 luni
6
Previziuni IT
pentru 2016
Ovidiu Man
10
Simplon Romnia
Roxana Rugin
12
SymfonyCon 2015
O simfonie a developer-ilor
Radu Murzea
14
Conferina TEDxCluj 2016
Cristian Dasclu
19
TFS ca platform de colaborare (I)
Dorin Cazan
22
Marketing prin fereastra digital.
O privire larg asupra lui 2016
Sorina Mone
24
Flexibilitate strategic n
timpul incertitudinii
Paul Alexandru Tofan
27
Logica Fuzzy i mecanismele specifice.
O introducere teoretic
Bogdan Mursa
30
Roku
Thomas Morris
32
De la Zero la RESTful n patru pai.
Design de API
Georgiana Gligor
37
Frontend Mashup
Raluca Oanca-Boca
39
n cutare de (potenial) talent
Mdlina Nastasa
41
10 nouti fiscale valabile din 2016
cu impact pentru antreprenori
Delia Mircea
editorial
L
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
Today Software Magazine
a muli ani! Aa cum se ntmpl de obicei, nceputul anului aduce pentru fiecare
dintre noi planuri de viitor. nainte de a v pune la curent cu proiectele acestui
an, vrem s subliniem c dorim s meninem dezvoltarea revistei pe acelai trend
cresctor al calitii, vizibilitii online precum i al organizrii evenimentelor lunare de
lansare a fiecrui numr. De asemenea, ne preocup ca n acest an s avem o mai bun
comunicare cu colaboratorii revistei. Prime demersuri n acest sens sunt crearea unui
loc de discuii online privat i organizarea unor workshop-uri care s ofere cititorilor
revistei ocazia unor reale experiene de nvare. Despre serviciul programez.ro v-am
informat i n numrul trecut. Sperm s l lansm n curnd i s punem la dispoziia
doritorilor posibilitatea de rezolva teste de certificare ale companiilor pentru anumite
poziii. Pentru cei ce doresc un preview, acesta este disponibil pe beta.programez.ro.
Adugarea unor rubrici noi n coninutul revistei precum cea de Nouti i cea de
Startup-uri este un obiectiv pe care ncercm s-l ndeplinim chiar din acest numr. O
alt schimbare se refer la pagina de comuniti, n sensul c vor fi menionate doar cele
mai active dintre ele, precizndu-se evenimentele organizate de ctre acestea.
Deschidem acest numr cu o serie de opinii asupra evoluiei anului 2016 vzut din
perspectiva de business, management, UX i machine learning. Flexibilitate strategic n
timpul incertitudinii demonstreaz c starea de nesiguran poate oferi avantaje dac este
condiionat de o analiz pertinent a volatilitii businessului. Domeniul tehnic specific
IT-ului este reprezentat de o serie de subiecte interesante: o scurt introducere n Logica
Fuzzy i mecanisme specifice, O Introducere teoretic, urmat de un ghid de programare
a dispozitivului Roku; TFS ca platform de colaborare - pentru dezvoltatori ct i
nondezvoltatori care propune o soluie pentru colaborarea n cadrul echipei. Continum
seria de articole de dezvoltare a unei aplicaii web folosind ultimele framework-uri n
articolul De la Zero to RESTful n 4 pai. Design de API. Tot din aceast arie face parte
i Frontend Mashup. n cutare de (potenial) talent din perspectiva anului 2020 este un
articol care creioneaz n tue realiste evoluia resurselor umane i implicaiile acesteia
n raportul angajat/angajator. Un alt articol foarte util pentru antreprenori i nu numai
este 10 nouti fiscale valabile din 2016 cu impact pentru antreprenori.
Ovidiu Man
Lista autorilor
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Sorina Mone
sorina.mone@fortech.ro
Editor-in-chief
Today Software Magazine
Marketing manager
@Fortech
Roxana Rugin
roxana.rugina@gmail.com
Project Manager
@ISDC
Radu Murzea
rmurzea@pentalog.fr
Bogdan Mursa
mursa.bogdan@yardi.com
PHP Developer
@Pentalog
Software Developer
@ Yardi
Cristian Dasclu
cristian@clujhub.ro
Co-fondator
@Cluj Hub
Curator & PM
@ TEDxCluj
Thomas Morris
thomas.morris@3pillarglobal.com
Dorin Cazan
dorin.cazan@siemens.com
Georgiana Gligor
gb@tekkie.ro
Service specialist
@Siemens
Owner
@Tekkie Consulting
Delia Mircea
delia@contzilla.ro
@ Contzilla.ro
Raluca Oanca-Boca
ralucaonaca@gmail.com
Produs de
www.todaysoftmag.ro
www.facebook.com/todaysoftmag
twitter.com/todaysoftmag
ISSN 2284 6352
Mdlina Nastasa
madalina.nastasa@happyemployees.eu
Sales Development
Representative
@ Azimut Happy Employees
opinii
a nceput de an, toi proiectm noi planuri i noi obiective, spernd ca noul
an s fie unul favorabil ndeplinirii acestora. Dac unii in cont de ceea ce
spune zodiacul, noi am decis s dm mai mult credibilitate reprezentanilor
importani din comunitatea IT clujean. De aceea, i-am rugat s ne comunice care
sunt previziunile lor referitor la 2016. Din rspunsurile lor nu putem trage dect o
concluzie foarte optimist: anul 2016 va fi unul benefic pentru industria IT!
Ovidiu Man
ovidiu.matan@todaysoftmag.com
Editor-in-chief
@ Today Software Magazine
Organizator
@ Cluj IT Days
Philipp Kandal
n 2016, vom remarca o schimbare
de paradigm de la programarea logic
tradiional nspre nvarea aprofundat
dar i o continuare a proiectelor Big data.
Acest lucru va oferi inginerilor ocazia de
a desfura o munc inovatoare. Clujul
este bine poziionat datorit culturii sale
inginereti puternice i va continua s
creasc puternic n 2016. Sper n mod special ca 2016 s ofere oportuniti Product
Startup-urilor din Cluj de a avea parte de
o expunere internaional i m-a bucura
mult s vd primul unicorn care pleac de
la Cluj.
Vlad Derdeicea
Noul an vine cu multe modificri i
trenduri diferite n web ct i n mobile.
Website-urile ncep s aib ct mai multe
videouri i imagini erou (mari) la intro,
timp n care variantele lor de mobile
sunt din ce n ce mai rapide. Ca i n anii
precedeni se pune foarte mult accentul pe
uurina de utilizare a interfeei, grafica flat
opinii
Previziuni IT pentru 2016
i animaiile organice ce aduc via oricrui produs digital.
Fonturi frumoase i citibile sunt mai uor de gsit odat cu
Avnd n vedere evoluia rapid a device-urilor mobile se apariia Typekit-ului de la Adobe i a Google Fonts, iar site-urile
ateapt ca n anul 2016 traficul mobil s fie egal cu cel de pe au nceput s aibe fonturi din ce n ce mai curate trasmind
desktop, aceasta nseamn mai multe site-uri responsive i informaia ntr-un mod foarte uor.
aplicaii axate pe verticalitate i pe bine-cunoscutul scroll din
aplicaiile sociale. De asemenea, faptul c anul trecut Google a
decis ca site-urile responsive s fie clasate n cutri mai sus dect
cele doar pentru desktop este nc un motiv pentru care din ce n
ce mai multe companii caut s fac variante responsive sau chiar
aplicaii custom.
Clin Vduva
Evoluia mediului de IT din Cluj a fost i va fi n continuare determinat de dinamica pieei globale. Clujul s-a conturat
ca pol regional de cretere economic pe fondul cererilor venite
din pieele mature. La acest nivel, perspectivele de cretere pentru
2016 rmn modeste, reflectnd ncetinirea creterii comerului
mondial i a tensiunilor geopolitice. Acestea vor aduce presiuni
asupra optimizrii costurilor i a creterii productivitii, determinnd orientarea clienilor ctre investiii mai precaute, inclusiv
n tehnologie.
n acest scenariu, Clujul va traversa o perioad de reaezare.
Accentul va fi direcionat nspre mbuntirea calitii serviciilor
oferite i a relaiilor cu partenerii actuali. n mod evident, acest
lucru are impact asupra dinamicii forei de munc, att din punct
de vedere cantitativ ct i calitativ.
Pe termen lung, ne putem atepta s revenim la o cretere
semnificativ att a outsourcing-ului ct i a investiiilor din zona
de produse.
Robert Muresan
Anul 2016 va fi anul Virtual Reality.
Toi productorii de echipamente VR (HTC&Valve, Oculus,
Sony) i vor lansa echipamentele n anul acesta.Va fi anul n care
vom asista la schimbri radicale pe piaa de gaming: locul ecranelor tradiionale va fi luat de echipamentele de realitate virtual.
Experiena va fi considerabil mai bun.
educaie
Roxana Rugin
roxana.rugina@gmail.com
CEO & co-founder
@Simplon Romania
10
1 http://ro.simplon.co/mobile
11
evenimente
SymfonyCon 2015
O simfonie a developer-ilor
Radu Murzea
rmurzea@pentalog.fr
PHP Developer
@Pentalog
12
V). Concluzii.
SymfonyCon 2015 a fost o conferin
bine organizat, oferind participanilor
o varietate de activiti i subiecte de
discuie. Interaciunea cu comunitatea a
fost punctul forte deoarece majoritatea
liderilor au venit sub acelai acoperi i au
fost foarte prietenoi cu participanii.
n concluzie, conferinele mari
internaionale sunt evenimente la care
orice profesionist din lumea IT ar trebui s
participe cel puin o dat n via.
13
evenimente
Cristian Dasclu
cristian@clujhub.ro
CEO & Business Developer
@ Transilvania
Entrepreneurship Center
Co-fondator
@Cluj Hub
Curator & PM
@ TEDxCluj
14
15
startup-uri
Startup-uri
Moqups
Startup-ul clujean Moqups.com pentru crearea de schie online a lansat recent cea de-a doua versiune mult mbuntit.
Proiectele realizate se pot publica online sau descrca sub form de PDF sau SVG. Exist inclusiv posibilitatea de a invita colaboratori i de a lucra mpreun la o schi.
Symme3D
Prima imprimant romneasc 3D pe sistem Delta. Avantajele acestui sistem sunt vibraiile sczute i o vitez de pn la 4-5 ori mai
mare fa de imprimantele 3d clasice pe sistem cartezian. Imprimanta
este o minifabric pentru orice mic productor de hardware deoarece pe lng capacitile 3D ofer i o frez CNC pentru gravarea
cuprului de pe circuitele integrate i un cap laser cu care se pot tia
plcuele de mylar.
Neura http://techcrunch.com/2016/01/18/neura/
16
Pine A64
nouti
Nouti IT
Nvidia Drive PX 2
1
1 http://www.perl.com/pub/2006/01/12/what_is_perl_6.
http://blog.jquer y.com/2016/01/14/
ten-years-of-jquery-and-beyond/
html
http://nvidianews.nvidia.com/news/
nvidia-boosts-iq-of-self-driving-cars-with-world-s-first-in-carartificial-intelligence-supercomputer
1 https://shop.oculus.com/
1 ht t p : / / w w w. am d . c o m / e n - u s / p ro d u c t s / s e r v e r /
1 https://www.android.com/versions/marshmallow-6-0/
opteron-a-series
17
comuniti
Comuniti i Evenimente
Lansarea numrului 43 al Today
Software Magazine
StartupBlinkers Networking
StartupBlink
StartupBlink este un ecosistem global
interactiv privind startup-urile, cu zeci
de mii de entiti listate, inclusiv startupuri, spaii destinate coworking-ului i
acceleratoare.
www.startupblink.com
DevOps
Comunitatea tuturor celor care doresc
s devin specialiti n DevOps.
Data nfiinrii: 28.08.2015
Nr. membri: 83
18
programare
eam Foundation Server (presc. TFS) promite a fi o soluie out of the box pentru toat platforma de ALM din cadrul unei organizaii ce poate fi utilizat att
pentru gestionarea proiectelor, ct i pentru a urmri work-flow-ul n echipe,
pentru a gestiona codul surs i pentru a compila i testa software-ul. Putei face acest
lucru fie cu Team Foundation Server instalat pe un server propriu fie prin utilizarea
Visual Studio Online n cloud.
Dorin Cazan
dorin.cazan@siemens.com
Service specialist
@Siemens
19
programare
20
1 https://visualstudio.uservoice.com
21
marketing
nceputul anului m-a gsit cufundat n nite probleme de marketing care m-au tot
preocupat de ceva timp. Dintre acestea, marketingul digital se distinge drept cea
mai bulversant. n lumea marketingului de azi, cu tot ce cuprinde ea, de la cursuri,
joburi i strategii la agenii de marketing digital, raportul dintre marketingul digital i
cel tradiional genereaz controverse i dezbateri intense.
Sorina Mone
sorina.mone@fortech.ro
Marketing manager
@Fortech
22
4 h t t p : / / w w w . a d w e e k . c o m / n e w s /
advertising-branding/slack-just-took-over-4-cities-its-first-bigextremely-bubbly-ad-campaign-168349
5 https://www.youtube.com/watch?v=x6sSa5NpqUI
Young spirit
Mature organization
A shared vision
Join our journey!
www.fortech.ro
23
programare
management
n ciuda volatilitii economice i de business, a incertitudinii rezultatelor i a gradului mare de risc al investiiilor, este posibil s existe oare un potenial al acestei
incertitudini care rmne neexploatat? n aceste condiii se pune problema dac
putem evalua acel potenial i justifica investiia, bazndu-ne exclusiv pe metodele
tradiionale de evaluare, care examineaz doar informaiile deinute la momentul evalurii (ex. Recuperarea investiiilor ROI, Valoare Actualizat Neta - NPV)?
Standarde fixe
Incertitudinea este o prezen constant n lumea IT. Aceast incertitudine
apare din mai multe surse: imaturitatea,
complexitatea i natura imprevizibil
a tehnologiilor, gradul ridicat de integrare a tehnologiilor n cadrul i n afara
organizaiilor, presiunea accelerat exercitat asupra domeniului IT pentru produse
inovatoare i servicii orientate ctre o pia
cu o atractivitate dificil de prognozat . n
ciuda acestei realiti, metodele de evaluare tradiionale descurajeaz investiiile
fcute sub semnul acestei incertitudini
innd cont doar de informaiile prezente
la momentul evalurii.
n urma evalurii cu aceste metode,
decidenii sunt pui n faa unor proiecii
de venituri cu valori mici sau rate de actualizare mari, iar rspunsul lor la presiunea
de a investi care vine din pia este s
completeze lipsa de atractivitate a analizei NPV cu argumente calitative, cum ar
fi importana strategic sau prezena n
24
25
management
Aplicabilitate
Analiza de tip opiuni reale nu este aplicabil n contexte inflexibile n care scopul este fix, obligatoriu.
n contexte unde nu se tolereaz incertitudinea sau dac
consecinele incertitudinii pot fi ignorate, metodele tradiionale
de evaluare a proiectelor par s fie suficiente.
Proiectele strategice complexe, cu un grad de inovaie ridicat
i care tind s aib un grad mare de incertitudine pe o perioad
lung de timp, dau o valoare crescut acestui tip de gndire/
analiz, de aceea se recomand utilizarea lui ca instrument n
managementul unor astfel de iniiative.
26
programare
programare
27
programare
Logica Fuzzy i mecanismele specifice. O introducere teoretic
moderne i este folosit n sisteme fuzzy aflate n: automobile,
mecanisme de securitate, aparate medicale, mecanisme decisionale (marketing, business etc.), aparate foto etc. .
Noi ca oameni folosim aa numita logic fuzzy zi de zi, fr s
avem nici cea mai mic idee, pentru c mintea uman este construit natural s gndeasc ntr-o manier fuzzy. Un exemplu
simplu poate fi reprezentat de rspunsurile posibile la ntrebarea
Ct de satisfcut eti de Universitatea Babe-Bolyai?: Destul
de satisfcut, Nu sunt satisfcut, Foarte satisfcut, care sunt
rspunsuri ce pot fi considerate ambigue sau fuzzy, folosind termenii prezentai deja. Pentru c raionamentul uman este fcut s
lucreze aa, pentru noi oamenii este foarte simplu s interpretm
aceste tipuri de rspunsuri, folosindu-ne de experiena acumulat
deja sau de diferite metrici. ns cnd vine vorba de maini controlate de un calculator ce folosete logica binar, acest lucru nu
mai este posibil. Pentru c acestea neleg doar valori ca 0 i 1, sau
rspunsuri ca satisfcut, nesatisfcut.
n termenii logicii fuzzy, aceste seturi de date ce pot fi interpretate de orice main ntr-un sistem binar se numesc crisp data.
Pentru a parcurge i cteva noiuni mai practice, vom folosi
un exemplu destul de interesant ca s vedem cum se vor comporta
logica fuzzy i cea tradiional. n acest exemplu dorim s crem
conceptual un sistem de self-driving car de pe un automobil
care s fie capabil s ia cele mai bune decizii n momentul n care
o alt main se afl la o anumit distan de automobilul nostru.
Conform metodei tradiionale, sistemul nostru va putea lua
doar dou decizii: aproape i departe. Folosindu-ne de Figura 1.
ne putem imagina distana ntre maini ca fiind mprit n dou
jumti egale, fiecare avnd drept corespondent direct una din
cele dou decizii. n acest context, faptul c putem lua n considerare doar aceste dou decizii trase n urma analizei distanei
ntre maini duce la msuri direct proporionale. Voi formula
aceste decizii sub forma unor reguli de forma dac-atunci (dac
o condiie atunci o consecin).
28
programare
Exemplul de mai sus ofer ca rspuns la ntrebare un numr
ce se afl n intervalul [0,1]. Acest numr este de fapt un numr
fuzzy ce are n calitate de corespondent un set fuzzy cruia i
poate fi asociat (n acest caz setul nu foarte aproape).
ntr-un caz real, un mecanism de self-driving car ce
ar implementa o logic fuzzy conform exemplului de mai sus,
ar respecta comportamentul omenesc mult mai bine, maina
conducndu-se cu adaptri ale vitezei n funcie de distana ntre
maini, fr a pune frne brute.
Cu siguran acest exemplu v-a fcut un pic curioi n
legtur cu algoritmul propriu-zis ce este implementat ntr-un
astfel de sistem fuzzy. Aceast implementare este una foarte natural de asemenea, dei mai este presrat pe alocuri cu diferite
noiuni specifice; partea bun este c acestea sunt sugestive.
Un controler fuzzy sau un mecanism fuzzy nu este altceva dect o main ce folosete logica fuzzy. Acest controler
poate s fie un sistem hardware sau software, sau amndou,
scopul lui final fiind s aplice logica fuzzy n aa fel nct s
interpreteze datele aa cum ar face-o un om, doar c mult mai
rapid.
Flow-ul unui astfel de mecanism este reprezentat prin urmtorii pai:
1. Primirea unui numr de msurtori oferite de un alt
sistem (n exemplul de mai sus, ar fi un senzor care ar msura
distana ntre cele dou maini).
E.g: 4 m, 5 m etc.
2. S nu uitm c sistemul nostru poate procesa doar
seturi de date fuzzy. Deci datele primite n pasul anterior trebuie
transformate din date crisp n date fuzzy. Aceste transformri se
fac conform unor metrici stabilite de un expert n domeniul de
aplicabilitate.
E.g: 4 m reprezint o valoare de 0.3 de aproape.
3. Setul de date fuzzy rezultat este folosit ca input n
regulile fuzzy de tipul dac-atunci, ce au drept rezultat (sau
consecin) un alt set de date fuzzy.
E.g: Dac maina B este 0.3 m aproape atunci apas frna 0.3
(nu foarte tare)
4. n ultimul pas aceast consecin fuzzy trebuie tranformat n date crisp pentru ca sistemele ce citesc output-ul din
controler-ul fuzzy s poat lua msuri.
E.g: 0.3 frn poate reprezenta o reducere de vitez de 30%
fa de vitez actual.
29
programare
Roku
R
Thomas Morris
thomas.morris@3pillarglobal.com
Roku & Python Software Developer
@3Pillar Global
30
oku a erupt n aceti ultimi civa ani. ncepnd ca un startup modest n 2002
i ludndu-se acum cu peste 10 milioane de utilizatori, Roku este cel mai mare
juctor de pe piaa dispozitivelor de streaming pentru home media, vnznd
37% din toate dispozitivele de streaming anul trecut. Cel mai apropiat competitor este
Chromecast, cu 19%. Deci, chiar dac acest startup a reuit s se strecoare printre
goliai precum Apple sau Google pe piaa home media, a fcut acest lucru cu destul de
mult succes.
Roku
n caz c nu ai mai auzit de Roku pn
acum, este o cutiu mic, nu scump (de
obicei sub 100 $), pe care o putei conecta
la televizorul vostru pentru a reda n flux
videouri de pe diferite canale sau aplicaii.
Sarcina unui dezvoltator Roku este s programeze un canal pe care utilizatorul s l
poat deschide i de pe care s poat reda
n flux materiale video pe televizor. Astfel
c, dac cineva valorific, s spunem, un
canal Youtube, el sau ea va face o aplicaie
prin care utilizatorii pot cuta i viziona
coninut Youtube pe al lor Roku.
Cnd ncepei s programai, vei
realiza rapid c Roku, de fapt, nu are un
simulator despre care s vorbim orice
cod pe care l scriei i dorii s l testai
trebuie ncrcat pe un dispozitiv Roku
real i apoi rulat pe aparat pentru a face
debugging-ul. Dac ai avut o zi grea la
munc i mai trebuie s lucrai i acas
la ceva, pregtii-v s luai dispozitivul
acas cu voi i s l conectai la un televizor de rezerv pe care s sperm c l avei
prin preajm. Debugging-ul se face prin
Lucrul cu Brightscript
n ceea ce privete lucrul efectiv cu acest limbaj, una din
caracteristicile cele mai grozave ale Brightscript este dimensiunea
sa. Acest limbaj este foarte mic. ntreaga baz a codului const
n numai aproximativ 90 de tipuri de clase. Aceasta nseamn c
dac eti un Rokui-ist nou, este simplu s te deprinzi cu sforile i
s poi pune laolalt ceva cod uor care funcioneaz mai mult
sau mai puin.
Cel mai interesant lucru este c Brightscript nu i permite s
i formezi layout-ul pentru ecranele din aplicaia ta. Da, chiar aa.
Roku nu i ofer control asupra locului unde s apar elementele
de pe ecran sau cum s arate UI-ul tu. Alegi unul dintre cele
10 modele pe care Brightscript i le ofer i i treci informaiile
pe el. De acolo, programul dispune i aaz totul dup cum tie,
indiferent dac ie i place sau nu.
ntr-un fel, exist ceva eliberator n legtur cu asta. Scrierea
unei aplicaii devine super-uoar, cci tot ce ai de fcut este s
scrii ceva de genul:
poster = CreateObject(roPosterScreen)
contents = [
{
Title: Show 1
Description: The hottest thing on TV
}
{
Title: Show 2
Description: The next hottest thing on TV
}
]
poster.SetContentList(contents)
poster.Show()
Concluzie
n ciuda acestor aspecte, ceea ce este promitor n legtur
cu Roku este c industria dispozitivelor de streaming a nflorit n
ultima perioad. Un studiu al Parks Associates arat c numrul
locuinelor din US care posed un dispozitiv de streaming a crescut cu 63% de anul trecut, de la 13% la 21%. Acelai raport mai
prezice i faptul c companiile vor vinde pn la 86 milioane de
dispozitive de streaming n 2019. i dat fiind faptul c Roku deine
o mare parte din aceast industrie, exist o mare posibilitate ca
cererea de programatori Roku s cunoasc o cretere n urmtorii
doi ani.
Vznd ct de rapid a evoluat piaa dispozitivelor de streaming, a nva s programezi pentru vreunul devine din ce n ce
mai viabil. Dac poi tolera defectele platformei, popularitatea lui
Roku face ca nvarea lui s fie o opiune evident. Dei nc n
faza incipient, ascensiunea meteoric a Roku promite multe pe
viitor.
Product
Strategy
Product
Development
Product
Support
www.3pillarglobal.com
31
programare
cest articol este partea a doua dintr-o serie n care artm cum se pregtete,
planific i implementeaz un API RESTful. Dup ce am pus bazele n prima
parte, de data aceasta vom expune modul cum se face designul unui API, precum i sunt aspectele la care trebuie s fim ateni.
Georgiana Gligor
gb@tekkie.ro
Owner
@Tekkie Consulting
32
testare
version: 2.0,
creator: {company: Tekkie Consulting, product: 123sample},
type: Gregorian,
language: English,
timezone: {
id: Europe/Bucharest
},
events: [{
id: 123456789@example.dev,
start: 2015-03-11T12:34:56.000Z,
end: 2015-03-11T12:59:59.000Z
}]
}
$ vendor/bin/codecept bootstrap
33
programare
De la Zero la RESTful n patru pai. Design de API
$ php -S localhost:12345 -t web
34
$ vendor/bin/codecept generate:cest
functional Vehicles
Test was created in /Users/g/Sites/learn/silex-tutorial/tests/functional/VehiclesCept.php
7 https://developer.github.com/v3/
8 https://www.twilio.com/docs/api/rest
9 https://www.wepay.com/developer/version
10 http://www.infoq.com/presentations/rest-misconceptions
11 https://github.com/WhiteHouse/api-standards
12 http://www.restapitutorial.com/lessons/restquicktips.html
5 https://developers.facebook.com/docs/apps/migrations/completed-changes#jul_2012
13 http://blog.octo.com/en/design-a-rest-api/#case
6 http://martinfowler.com/ieeeSoftware/published.pdf
14 http://codeception.com/docs/07-AdvancedUsage#.Vp5DcTYoXVo
35
programare
De la Zero la RESTful n patru pai. Design de API
Apoi definim cum va arta o resurs de tip vehicul. Spunem
practic c la execuia unei cereri POST ctre /vehicles care
primete un nume pentru noul item, l vom crea i returna
ntreaga nregistrare, inclusiv IDul acesteia. Pe baza acestui ID,
vom efectua ulterior operaii de modificare, la adresa /vehicles/
ID.
<?php
class VehiclesCest
{
public function createItem(FunctionalTester $I,
$scenario)
{
$I->wantTo(create a new vehicle);
$I->sendPOST(/vehicles, [
name => Pansy
]);
// we mark scenario as not implemented
$scenario->incomplete(work in progress);
$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
$I->seeResponseJsonMatchesXpath(//id);
$I->seeResponseJsonMatchesXpath(//name);
$I->seeResponseMatchesJsonType([
id => integer,
name => string
]);
$I->seeResponseContainsJson([
id => 123,
name => Pansy
]);
Concluzii
Am aflat ce este stilul arhitectural REST, am nvat diferena
ntre resurse i reprezentrile lor, am pregtit Codeception pentru
a ne fi de folos la definirea cazurilor de utilizare, am nvat cum
se face design de API din punct de vedere practic, i am vzut
la ce trebuie s fim ateni n cadrul acestui proces. n articolul
urmtor vom rafina cazurile de utilizare i vom trece la partea de
implementare.16
16 https://en.wikipedia.org/wiki/ISO_8601
S observm c, cel puin pentru moment, marcm scenariul curent ca incomplet, pentru a preveni execuia aseriilor
noastre. Vom elimina acest lucru n partea urmtoare a tutorialului nostru, atunci cnd vom trece la implementarea efectiv a
funcionalitii.
Mai multe detalii despre celelalte operaii definite pentru
vehicule, precum i aseriile corespunztoare, pot fi gsite pe
GitHub15.
Rularea testelor funcionale indic faptul c avem cteva
definite i c ele sunt nc incomplete. Iat cele mai importante
elemente de la rularea testelor:$ vendor/bin/codecept run
15 https://github.com/tekkie/autolog-api
36
programare
programare
Frontend Mashup
uli dintre programatorii web au nevoie ca timpul de randare a unei pagini web
s fie ct mai scurt. Cu aceasta problem te confruni n primul rnd atunci cnd
se aleg uneltele cu care se va lucra la un proiect nou.
Raluca Oanca-Boca
ralucaonaca@gmail.com
Full Stack Developer
@Self-Employed
La nceputul unui proiect nou este ntotdeauna greu s alegem uneltele care vor
uura munca fiecrui membru din echip.
Trebuie s fim ateni atunci cnd alegem
aceste unelte, deoarece ele vor fi folosite
pn la finalul proiectului dar i n procesul
de deployment. n acest articol am ncercat s
evideniez operaiile care formeaz automatizarea frontend-ului. Acestea sunt: scrierea
de css cu un framework preprocesat, minificarea i testarea css-ului ct i minificarea i
testarea js-ului i , de asemenea, automatizarea acestora sub forma de procese <grunt>
att pentru mediul de dezvoltare local dar i
pentru producie.
Pentru proiectul prototip iniial s-a folosit ca backend limbajul de programare PHP
fr a se utiliza nici un alt framework, iar ca
framework de frontend am ales AngularJS.
Cnd vine vorba de alegerea unui limbaj
de stilizare putem alege unul dintre LESS,
SASS/SCSS sau Stylus. Acestea sunt limbaje de stilizare preprocesate ceea ce au un
avantaj faa de limbajul CSS pur. Avantajele
principalele sunt posibilitatea de a avea variabile, motenire, nesting i mixins. Dup ce
am fcut alegerile dorite, provocarea este
cum reuim s combinm aceste unelte astfel nct s ne uurm n primul rnd munca
noastr, munca unui operator de dezvoltare,
i s avem un timp de randare a paginii ct
mai mic.
Avem la dispoziie : nodejs, ruby, dar
i managerul de pachete ce se bazeaz pe
nodejs: npm. Ca o practic bun n utilizarea managerului de pachete se folosete un
fiier package.json n directorul rdcin al
proiectului.
n acest fiier vom lista toate pachetele de care avem nevoie ct i cteva din
dependinele pentru mediu de lucru local.
Dup crearea acestui fiier sau dup modificarea acestuia, trebuie s rulam comanda:
npm install
Se va instala limbajul de programare
ruby i cteva din dependinele acestuia dintre care : sass, sass-globing i compass.
sudo apt-get install ruby-full
sudo gem install sass compass sass-globbing
37
programare
Frontend Mashup
Odat ce avem acestea instalate putem
s ncepem s ne construim fiierul
Gruntfile.js, fiier care, de asemenea, este
creat pe acelai nivel ca i fiierul package.
json. Avem nevoie de acest fiier deoarece de fiecare dat cnd comanda grunt
este rulat va lua n considerare acest
fiier.
38
Bibliografie:
[1]. http://conferences.oreilly.com/fluent/
fluent2014/public/schedule/detail/32532
[2]. https://speakerdeck.com/addyosmani/
automating-front-end-workflow
[3]. www.gruntjs.com
[4]. https://www.npmjs.com/
[5]. http://gruntjs.com/plugins
programare
programare
Mdlina Nastasa
madalina.nastasa@happyemployees.eu
Sales Development
Representative
@ Azimut Happy Employees
Surs: http://www.manpowergroup.com/wps/wcm/
connect/db23c560-08b6-485f-9bf6-f5f38a43c76a/2015_Talent_
Shortage_Survey_US-lo_res.pdf?MOD=AJPERES
39
educaie
n cutare de (potenial) talent
este inabilitatea de a-i mulumi clienii.
51% spun c productivitatea i competitivitatea companiei lor are i va avea
de asemena de suferit.
inovaie i creativitate sczut (37%);
fluctuaie mai ridicat a personalului
(36%).
Vestea mai puin rea este c mai avem
timp pn n 2020 s atenum efectele
negative ale crizei. Se preconizeaz c n
2020 criza talentului va ajunge la apogeu,
astfel nct vor fi mai multi angajai care
prsesc piaa muncii dect cei care intr.
Acest fenomen va face angajaii de pe piaa
muncii mult mai valoroi, iar retenia lor
precum i recrutarea de noi talente vor
trona n topul prioritilor de business.
n niciun caz nu putem risca s ne prind
nepregtii.
Acum c suntem contieni de criza ce
ne pndete i ne amenin, ce putem face
n aceast privin?
n mod clar, majoritatea companiilor
mari deja au nceput s ia n considerare la
modul serios aceast criz, contientiznd
c poziia lor de pe pia este direct
afectat.
Printre politicile de personal n curs
de implementare, amintim2 3 :
orar de lucru flexibil, pentru a asigura un echilibru personal profesional
2
Surs: http://hrtimesblog.com/2015/03/25/
if-you-build-it-will-they-come-overcoming-the-talent-crisis-inmanufacturing/
3
S u r s : h t t p : / / w w w. b l o o m b e r g . c o m / b w /
stories/2008-09-19/the-global-talent-crisisbusinessweek-business-news-stock-market-and-financial-advice
40
contabilitate
nul 2016 aduce importante nouti fiscale pentru antreprenori, indiferent de forma
de organizare: SRL, PFA, etc.Principalele modificri sunt date de apariia noului cod
fiscal (Legea 227/2015) i a Ordinului 2634/2015 care aduce actualizri importante
formei documentelor financiar-contabile.Prezentm mai jos o sintez a principalelor modificri cu impact n activitatea de zi cu zi a antreprenorilor:
Delia Mircea
delia@contzilla.ro
@ Contzilla.ro
41
contabilitate
10 nouti fiscale valabile din 2016 cu impact pentru antreprenori
au peste 2 salariai, inclusiv;
Salariul net aferent unui salariu brut
b) 2% pentru microntreprinderile care de 1.050 este de : 785 lei
au un salariat;
Am presupus ca salariatul nu are perc) 3%, pentru microntreprinderile soane n ntreinere.
care nu au salariai.
ncepnd cu 1 mai 2016 salariul minim
brut pe economie se va majora la 1.250 lei.
42
5. Impozitul pe dividende
6. Sponsorizri
43
contabilitate
10 nouti fiscale valabile din 2016 cu impact pentru antreprenori
44
45
sponsori
powered by