Čeprav se zdi, da nas do leta 2020 loči le še nekaj mesecev, so ti meseci pomembni tudi na področju razvoja programske opreme. V tem članku bomo videli, kako bo prihodnje leto 2020 spremenilo življenja razvijalcev programske opreme!
Prihodnji razvoj programske opreme je tukaj!
Pri tradicionalnem razvoju programske opreme gre za razvoj programske opreme s pisanjem kode in upoštevanjem določenih pravil. Toda današnji razvoj programske opreme je bil priča spremembi paradigme z napredkom umetne inteligence, strojnega učenja in globokega učenja. Z integracijo teh treh tehnologij bodo razvijalci lahko zgradili programske rešitve, ki se bodo naučile navodil in dodale dodatne funkcije in vzorce v podatke, ki so potrebni za želeni rezultat.
Poskusimo z nekaj kode
Sčasoma so sistemi za razvoj programske opreme nevronskih mrež postali bolj zapleteni v smislu integracij ter ravni funkcionalnosti in vmesnikov. Razvijalci lahko s Pythonom 3.6 zgradijo zelo preprosto nevronsko mrežo. Tukaj je primer programa, ki izvaja binarno klasifikacijo z 1 ali 0.
Seveda lahko začnemo z ustvarjanjem razreda nevronske mreže:
uvozi numpy kot np
X=np.array([[0,1,1,0],[0,1,1,1],[1,0,0,1]])
y=np.array([[0],[1],[1]])
Uporaba sigmoidne funkcije:
def sigmoid ():
return 1/(1 + np.exp(-x))
def derivatives_sigmoid ():
return x * (1-x)
Usposabljanje modela z začetnimi utežmi in pristranskostmi:
epoch=10000
lr=0.1
inputlayer_neurons = X.shape[1]
hiddenlayer_neurons = 3
output_neurons = 1
wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))
Za začetnike, če potrebujete pomoč glede nevronskih mrež, se lahko obrnete na
Spreminjanje kode z nevronom izhodne plasti
hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)
Napaka pri izračunu za skrito plast kod
E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr
izhod:
print (output)
[[0.03391414]
[0.97065091]
[0.9895072 ]]
Čeprav je vedno pametno biti na tekočem z najnovejšimi programskimi jeziki in tehnikami kodiranja, bi morali programerji poznati tudi številna nova orodja, ki pomagajo narediti njihove aplikacije ustrezne za nove uporabnike.
Leta 2020 bi morali razvijalci programske opreme razmisliti o vključitvi teh 5 orodij za razvoj programske opreme v svoje izdelke, ne glede na to, kateri programski jezik uporabljajo:
1. Obdelava naravnega jezika (NLP)
S chatbotom, ki spodbuja storitve za stranke, NLP pritegne pozornost programerjev, ki se ukvarjajo z razvojem sodobne programske opreme. Veljajo
Če gremo naprej z najboljšimi orodji in tehnologijami za razvoj programske opreme, lahko pričakujete, da bodo razvijalci programske opreme uporabljali NLP na več načinov, od glasovno vodenega uporabniškega vmesnika do veliko lažjega krmarjenja po menijih, analize čustev, prepoznavanja konteksta, čustev in dostopnosti podatkov. Vse bi bilo na voljo večini uporabnikov, podjetja pa lahko do leta 430 dosežejo do 2020 milijard dolarjev povečanja produktivnosti, glede na podatke IDC, ki jih navaja Deloitte.
2. GraphQL zamenjava REST Apis
Po mnenju razvijalcev v mojem podjetju, ki je offshore podjetje za razvoj programske opreme, REST API izgublja svojo prevlado nad aplikacijskim vesoljem zaradi počasnega nalaganja podatkov, ki ga je treba izvajati iz več URL-jev posebej.
GraphQL je nov trend in najboljša alternativa arhitekturi, ki temelji na Rest, ki potegne vse pomembne podatke z več spletnih mest z eno samo zahtevo. Izboljša interakcije odjemalec-strežnik in zmanjša zakasnitev, zaradi česar je aplikacija veliko bolj odzivna na uporabnika.
Svoje veščine razvoja programske opreme lahko izboljšate, če za razvoj programske opreme uporabljate GraphQL. Prav tako zahteva manj kodiranja kot REST Api in omogoča omogočanje kompleksnih poizvedb v nekaj preprostih vrsticah. Lahko se dobavi tudi s številnimi
Trenutno GraphQL podpira skupnost razvijalcev z:
- Omogočanje težav s prekomernim in premajhnim pridobivanjem
- Validacija in tipsko preverjanje kod
- Dokumentacija API-ja za samodejno ustvarjanje
- Z zagotavljanjem podrobnih sporočil o napakah
- V tabelo dodajte dodatno operacijo: »naročnine« za prejemanje sporočil v realnem času s strežnika
3. Nizka/brez kode
Vsa orodja za razvoj programske opreme z nizko kodo nudijo številne prednosti. Moral bi biti čim bolj učinkovit pri pisanju številnih programov iz nič. Nizka koda ali brez kode zagotavljajo vnaprej konfigurirano kodo, ki jo je mogoče vdelati v večje programe. To tudi neprogramerjem omogoča hitro in enostavno ustvarjanje kompleksnih izdelkov ter pospešitev sodobnega razvojnega ekosistema.
Glede na poročilo, ki ga deli
- Microsoft PowerApps
- Mendix
- Zunanji sistemi
- Ustvarjalec Zoho
- Salesforce App Cloud
- Hitra osnova
- Pomladni čevelj
4. 5G val
Povezljivost 5G bo močno vplivala na razvoj mobilne/programske opreme, pa tudi na spletni razvoj. Navsezadnje je v tehnologiji, kot je IoT, vse povezano. Torej bo programska oprema naprave v celoti izkoristila hitra brezžična sredstva s 5G.
V nedavnem intervjuju z
V tej luči si bodo podjetja za razvoj programske opreme prizadevala vključiti 5G v sodobne aplikacije. Uvedba 5G se hitro premika, več kot 20 operaterjev je napovedalo nadgradnje svojih omrežij. Torej bodo razvijalci zdaj začeli delati na pravilnem sprejemanju
- Varnost omrežnega programa, zlasti za rezanje omrežja.
- Zagotovil bo nove načine za ravnanje z uporabniškimi identitetami.
- Omogoča dodajanje novih funkcij aplikacijam z nizko stopnjo zakasnitve.
- Vplivalo bo na razvoj sistema, ki podpira AR/VR.
5. Preverjanje pristnosti brez napora
Avtentikacija vedno bolj postaja učinkovit postopek pri zaščiti občutljivih podatkov. Sofisticirana tehnologija ni le ranljiva za hekersko programsko opremo, ampak podpira tudi umetno inteligenco in celo kvantno računalništvo. Toda trg razvoja programske opreme je že priča množici novih vrst avtentikacije, kot so analiza glasu, biometrija in prepoznavanje obraza.
Na tej točki hekerji iščejo različne načine, kako spodkopati spletne uporabniške identitete in gesla. Ker so mobilni uporabniki že navajeni, da do svojih pametnih telefonov dostopajo z odtisom palca ali prsta ali s skeniranjem obraza, z orodji za preverjanje pristnosti ne bodo potrebovali novih zmogljivosti za validacijo, pa tudi možnosti kibernetske kraje bodo manjše. Tukaj je nekaj večfaktorskih orodij za preverjanje pristnosti s šifriranjem SSL.
- Mehki žetoni spremenijo vaše pametne telefone v večnamenske avtentifikatorje.
- EGrid patterns je preprosta za uporabo in priljubljena oblika avtentifikatorjev v industriji.
- Nekatere najboljše programske opreme za preverjanje pristnosti za podjetja so: RSA SecurID Access, OAuth, Ping Identity, Authx in Aerobase.
V Indiji in ZDA obstajajo podjetja za razvoj programske opreme, ki izvajajo obsežne raziskave v znanosti o avtentikaciji in biometriji z napredkom AI za zagotavljanje odlične programske opreme za glasovno, obrazno, vedenjsko in biometrično avtentikacijo. Zdaj lahko zaščitite digitalne kanale in izboljšate zmogljivosti platform.
Endnotes
Zdi se, da bo življenje programerjev leta 2020 manj zapleteno, saj se bo razvoj programske opreme verjetno pospešil. Razpoložljiva orodja bodo postala lažja za uporabo. Navsezadnje bo ta napredek pripeljal do ustvarjanja živahnega sveta, ki se usmerja v novo digitalno dobo.
Vir: www.habr.com