5 лепшых практык распрацоўкі праграмнага забеспячэння ў 2020 годзе

Прывітанне, Хабр! Уяўляю вашай увазе пераклад артыкула "5 Tips On Learning How to Code - General Advice For Programmers" аўтара kristencarter7519.

Хаця здаецца, што да наступлення 2020 года нам засталося ўсяго некалькі дзён, гэтыя дні таксама важныя ў галіне распрацоўкі праграмнага забеспячэння. Тут, у гэтым артыкуле, мы ўбачым, як надыходзячы 2020 зменіць жыццё распрацоўшчыкаў праграмнага забеспячэння.

5 лепшых практык распрацоўкі праграмнага забеспячэння ў 2020 годзе

Будучыня распрацоўкі праграмнага забеспячэння ўжо тут!

Традыцыйная распрацоўка праграмнага забеспячэння - гэта распрацоўка праграмнага забеспячэння шляхам напісання кода, прытрымліваючыся некаторых фіксаваных правілах. Але сучасная распрацоўка праграмнага забеспячэння засведчыла змену парадыгмы з дасягненнямі ў вобласці штучнага інтэлекту, машыннага навучання і глыбокага навучання. Дзякуючы інтэграцыі гэтых трох тэхналогій распрацоўшчыкі змогуць ствараць праграмныя рашэнні, якія вывучаюць інструкцыі і дадаюць дадатковыя функцыі і шаблоны ў дадзеныя, неабходныя для жаданага выніку.

Давайце паспрабуем з некаторым кодам

З часам сістэмы распрацоўкі праграмнага забеспячэння нейронавых сетак сталі больш складанымі з пункту гледжання інтэграцыі, а таксама ўзроўняў функцыянальнасці і інтэрфейсаў. Распрацоўнікі, напрыклад, могуць пабудаваць вельмі простую нейронавую сетку з Python 3.6. Вось прыклад праграмы, якая выконвае двайковую класіфікацыю з 1 ці 0.

Вядома, мы можам пачаць са стварэння класа нейронавай сеткі:

імпарт NumPy як NP

X=np.array([[0,1,1,0],[0,1,1,1],[1,0,0,1]])
y=np.array([[0],[1],[1]])

Ужыванне функцыі сігмоіда:

def sigmoid ():
   return 1/(1 + np.exp(-x))
def derivatives_sigmoid ():
   return x * (1-x)

Навучанне мадэлі з пачатковымі вагамі і адхіленнямі:

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))

Для пачаткоўцаў, калі вам патрэбна дапамога ў дачыненні да нейронавых сетак, вы можаце пашукаць у інтэрнэце сайты вядучых кампаній па распрацоўцы праграмнага забеспячэння або вы можаце наняць распрацоўшчыкаў AI / ML для працы над вашым праектам.

Мадыфікацыя кода з дапамогай нейрона выходнага пласта

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)

Памылка вылічэнні для ўтоенага пласта кодаў

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

Выхад

print (output)

[[0.03391414]
[0.97065091]
[0.9895072 ]]

Заўсёды варта быць у курсе апошніх моў праграмавання і метадаў кадавання, праграмісты таксама павінны ведаць аб многіх новых інструментах, якія дапамагаюць зрабіць іх прыкладанні актуальнымі для новых карыстальнікаў.

У 2020 годзе распрацоўнікам праграмнага забеспячэння варта разгледзець магчымасць уключэння гэтых 5 інструментаў распрацоўкі праграмнага забеспячэння ў свае прадукты незалежна ад таго, якую мову праграмавання яны выкарыстоўваюць:

1. Апрацоўка натуральнай мовы(NLP)

З дапамогай чата, які аптымізуе абслугоўванне кліентаў, NLP прыцягвае ўвагу праграмістаў, якія працуюць над распрацоўкай сучаснага праграмнага забеспячэння. Яны ўжываюць наборы інструментаў NLTK, такія як Python NLTK, для хуткага ўключэння NLP у чат-ботаў, лічбавых памочнікаў і лічбавыя прадукты. Да сярэдзіны 2020 года або ў найбліжэйшай будучыні вы ўбачыце, што NLP набудзе большае значэнне ва ўсім, пачынаючы з рознічнага бізнесу і заканчваючы аўтаномнымі транспартнымі сродкамі і прыладамі для дома і офіса.

Прасоўваючыся наперад з лепшымі інструментамі і тэхналогіямі распрацоўкі праграмнага забеспячэння, вы можаце чакаць, што распрацоўшчыкі праграмнага забеспячэння будуць выкарыстоўваць NLP рознымі спосабамі, ад галасавога карыстацкага інтэрфейсу да значна больш зручнай навігацыі па меню, аналізу настрояў, ідэнтыфікацыі кантэксту, эмоцый і даступнасці дадзеных. Усё гэта будзе даступна большасці карыстачоў, і кампаніі змогуць дасягнуць росты прадукцыйнасці да 430 мільярдаў даляраў да 2020 году (згодна з дадзенымі IDC, цытаваным Deloitte).

2. GraphQL, які замяняе REST Apis

Па словах распрацоўшчыкаў у маёй фірме, якая з'яўляецца афшорнай кампаніяй па распрацоўцы праграмнага забеспячэння, REST API губляе сваё дамінаванне над сусвету прыкладанняў з-за павольнай загрузкі дадзеных, якую неабходна выконваць з некалькіх URL-адрасоў па асобнасці.

GraphQL - гэта новая тэндэнцыя і лепшая альтэрнатыва архітэктуры на аснове REST, якая здабывае ўсе рэлевантныя дадзеныя з некалькіх сайтаў з дапамогай аднаго запыту. Гэта паляпшае кліент-сервернае ўзаемадзеянне і памяншае затрымку, што робіць прыкладанне значна спагадней для карыстальніка.

Вы можаце палепшыць свае навыкі распрацоўкі праграмнага забеспячэння, калі карыстаецеся GraphQL для распрацоўкі праграмнага забеспячэння. Акрамя таго, ён патрабуе менш кода, чым REST Api, і дазваляе здзяйсняць складаныя запыты ў некалькі простых радкоў. Ён таксама можа быць забяспечаны побач функцый Backand as a Service (BaaS), якія спрашчаюць яго выкарыстанне распрацоўшчыкамі праграмнага забеспячэння на розных мовах праграмавання, у тым ліку Python, Node.js, C++ і Java.

3. Нізкі ўзровень кадавання/няма кода (low code)

Усе прылады распрацоўкі праграмнага забеспячэння low code падаюць мноства пераваг. Ён павінен быць максімальна эфектыўным пры напісанні шматлікіх праграм з нуля. Low code уяўляе сабой папярэдне сканфігураваны код, які можа быць убудаваны ў буйнейшыя праграмы. Гэта дазваляе нават не праграмістам хутка і лёгка ствараць складаныя прадукты і паскорыць сучасную экасістэму распрацоўкі.

Паводле справаздачы TechRepublic, прылады без кода / low code ужо выкарыстоўваюцца ў вэб-парталах, сістэмах праграмнага забеспячэння, мабільных дадатках і іншых галінах. Рынак інструментаў low code вырасце да 15 мільярдаў долараў да 2020 года. Гэтыя прылады апрацоўваюць усё, уключаючы кіраванне логікай працоўнага працэсу, фільтраваннем дадзеных, імпартам і экспартам. Вось лепшыя платформы low code у 2020 году:

  • MicroSoft PowerApps
  • Мендыкс
  • Аўтсістэмы
  • Стваральнік Zoho
  • Воблака прыкладання Salesforce
  • Хуткая база
  • Вясновы бот

4. Хваля 5G

Магчымасць падлучэння 5G моцна паўплывае на распрацоўку мабільных прыкладанняў і праграмнага забеспячэння, а таксама вэб-распрацоўку. Бо з такімі тэхналогіямі, як IoT, усё злучана. Такім чынам, праграмнае забеспячэнне прылады будзе максімальна выкарыстоўваць магчымасці высакахуткасных бесправадных сетак з 5G.

У нядаўнім інтэрв'ю Digital Trends Дэн Дэры, віцэ-прэзідэнт па прадукцыі Motorola, заявіў, што "ў бліжэйшыя гады 5G забяспечыць больш хуткі абмен дадзенымі, больш высокую прапускную здольнасць і паскорыць праграмнае забеспячэнне тэлефона ў 10 разоў хутчэй, чым існуючыя бесправадныя тэхналогіі".

У гэтым святле кампаніі-распрацоўшчыкі праграмнага забеспячэння будуць працаваць над укараненнем 5G у сучасныя прыкладанні. На дадзены момант больш за 20 аператараў аб'явілі аб абнаўленні сваіх сетак. Такім чынам, распрацоўшчыкі зараз пачнуць працаваць над выкарыстаннем адпаведных API, каб выкарыстоўваць перавагі 5G. Тэхналогія значна палепшыць наступнае:

  • Бяспека сеткавай праграмы, асабліва для Network Slicing ("сеткавай нарэзкі").
  • Прадастаўленне новых спосабаў апрацоўкі карыстацкіх ідэнтыфікатараў.
  • Дазволіць дадаць новыя функцыянальныя магчымасці ў прыкладанні з нізкім узроўнем затрымкі.
  • Будзе ўплываць на развіццё сістэмы AR/VR.

5. Лёгкая аўтэнтыфікацыя

Аўтэнтыфікацыя ўсё часцей становіцца эфектыўным працэсам абароны канфідэнцыйных дадзеных. Складаная тэхналогія не толькі ўразлівая для ўзлому праграмнага забеспячэння, але таксама падтрымлівае штучны інтэлект і нават квантавыя вылічэнні. Але на рынку распрацоўкі праграмнага забеспячэння ўжо назіраецца мноства новых тыпаў аўтэнтыфікацыі, такіх як аналіз голасу, біяметрыя і распазнанне асоб.

На гэтым этапе хакеры знаходзяць розныя спосабы падробкі сеткавых ідэнтыфікатараў карыстачоў і пароляў. Паколькі мабільныя карыстачы ўжо абвыклі атрымліваць доступ да сваіх смартфонаў з адбіткам пальца або з дапамогай сканавання твару, такім чынам, з дапамогай прылад аўтэнтыфікацыі ім не спатрэбяцца новыя магчымасці для праверкі, бо верагоднасць кібер-крадзяжу стане менш. Вось некаторыя прылады шматфактарнага аўтэнтыфікацыі з SSL-шыфраваннем.

  • Soft Tokens ператвараюць вашыя смартфоны ў зручныя шматфактарнага аўтэнтыфікатары.
  • Шаблоны EGrid - гэта простая ў выкарыстанні і папулярная форма аўтэнтыфікатараў у галіны.
  • Некаторыя з лепшых праграм аўтэнтыфікацыі для бізнэсу: RSA SecurID Access, OAuth, Ping Identity, Authx і Aerobase.

У Індыі і ЗША існуюць кампаніі, якія распрацоўваюць праграмнае забеспячэнне і праводзяць шырокія даследаванні ў галіне аўтэнтыфікацыі і біяметрыі. Яны таксама прасоўваюць AI для стварэння цудоўнага праграмнага забеспячэння для галасавой, face-id-шнай, паводніцкай і біяметрычнай аўтэнтыфікацыі. Цяпер вы можаце абараняць лічбавыя каналы і паляпшаць магчымасці платформаў.

Заключэнне

Выглядае, што жыццё праграмістаў у 2020 годзе стане менш складаным, паколькі тэмпы распрацоўкі праграмнага забеспячэння, хутчэй за ўсё, будуць паскарацца. Даступныя прылады стануць прасцей у выкарыстанні. У канчатковым рахунку, гэта прасоўванне прывядзе да стварэння дынамічнага свету, які ўступае ў новую лічбавую эпоху.

Крыніца: habr.com

Дадаць каментар