5 онд програм хангамж хөгжүүлэх шилдэг 2020 туршлага

Хөөе Хабр! Би нийтлэлийн орчуулгыг та бүхэнд толилуулж байна “Хэрхэн кодлож сурах тухай 5 зөвлөмж – Програмистуудад зориулсан ерөнхий зөвлөгөө” 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 нь орчин үеийн програм хангамж хөгжүүлэх чиглэлээр ажилладаг програмистуудын анхаарлыг татаж байна. Тэд NLP-ийг чатбот, дижитал туслах болон дижитал бүтээгдэхүүнд хурдан оруулахын тулд Python NLTK зэрэг NLTK хэрэгслүүдийг ашигладаг. 2020 оны дунд үе эсвэл ойрын ирээдүйд жижиглэн худалдааны бизнесээс эхлээд бие даасан тээврийн хэрэгсэл, гэр, албан тасалгааны төхөөрөмжүүдэд NLP илүү чухал болохыг та харах болно.

Програм хангамж хөгжүүлэх илүү сайн хэрэгсэл, технологиор урагшлахын тулд програм хангамж хөгжүүлэгчид дуу хоолойд суурилсан хэрэглэгчийн интерфэйсээс эхлээд цэсийг хялбархан удирдах, сэтгэл хөдлөлийн дүн шинжилгээ хийх, контекст таних, сэтгэл хөдлөл, өгөгдөлд хүртээмжтэй байх хүртэл NLP-ийг олон янзаар ашиглах болно гэж найдаж болно. Энэ бүхнийг ихэнх хэрэглэгчид ашиглах боломжтой бөгөөд компаниуд 430 он гэхэд бүтээмжийн өсөлтийг 2020 тэрбум долларт хүргэх боломжтой болно (IDC-ийн мэдээлснээр Deloitte-ээс иш татсан).

2. REST Apis-ийг орлох GraphQL

Оффшор программ хангамж хөгжүүлэлтийн компани болох миний фирмийн хөгжүүлэгчдийн үзэж байгаагаар REST API нь олон URL-аас дангаар нь хийх шаардлагатай өгөгдлийг удаашруулж ачаалсны улмаас хэрэглээний ертөнц дэх ноёрхлоо алдаж байна.

GraphQL нь шинэ чиг хандлага бөгөөд REST-д суурилсан архитектурын илүү сайн хувилбар бөгөөд нэг асуулга ашиглан олон сайтаас холбогдох бүх өгөгдлийг гаргаж авдаг. Энэ нь үйлчлүүлэгч-серверийн харилцан үйлчлэлийг сайжруулж, хоцролтыг багасгаж, програмыг хэрэглэгчдэд илүү хариу үйлдэл үзүүлэх боломжийг олгодог.

Та програм хангамж боловсруулахдаа GraphQL ашиглахдаа програм хангамж хөгжүүлэх ур чадвараа сайжруулах боломжтой. Нэмж дурдахад, энэ нь REST Api-аас бага код шаарддаг бөгөөд хэд хэдэн энгийн мөрөнд нарийн төвөгтэй асуулга хийх боломжийг танд олгоно. Энэ нь мөн Python, Node.js, C++, Java зэрэг өөр өөр програмчлалын хэл дээр програм хангамж хөгжүүлэгчдэд ашиглахад хялбар болгодог Backand as a Service (BaaS) функцээр тоноглогдсон байж болно.

3. Кодлох түвшин бага/код байхгүй (бага код)

Бага кодтой програм хангамж хөгжүүлэх бүх хэрэгслүүд нь олон давуу талыг өгдөг. Энэ нь олон програмыг эхнээс нь бичихэд аль болох үр дүнтэй байх ёстой. Бага код нь илүү том программуудад суулгаж болох урьдчилан тохируулсан кодыг өгдөг. Энэ нь програмист бус хүмүүст ч гэсэн нарийн төвөгтэй бүтээгдэхүүнийг хурдан бөгөөд хялбархан бий болгож, орчин үеийн хөгжлийн экосистемийг хурдасгах боломжийг олгодог.

TechRepublic-ийн тайланд дурдсанаар кодгүй/бага кодтой хэрэгслүүдийг вэб портал, програм хангамжийн систем, гар утасны програм болон бусад салбарт аль хэдийн ашиглаж байна. Бага кодтой хэрэгслийн зах зээл 15 он гэхэд 2020 тэрбум доллар болж өснө. Эдгээр хэрэгслүүд нь ажлын урсгалын логикийг удирдах, өгөгдөл шүүх, импорт, экспорт зэрэг бүх зүйлийг зохицуулдаг. 2020 оны хамгийн бага кодтой платформууд энд байна:

  • Microsoft PowerApps
  • Мендикс
  • Гадны системүүд
  • Zoho Бүтээгч
  • Salesforce App Cloud
  • Түргэн суурь
  • Хавар ачаалах

4. 5G долгион

5G холболт нь мобайл програм, програм хангамжийн хөгжил, вэб хөгжүүлэлтэд ихээхэн нөлөөлнө. Эцсийн эцэст, IoT гэх мэт технологиор бүх зүйл хоорондоо холбоотой байдаг. Тиймээс төхөөрөмжийн програм хангамж нь 5G-тэй өндөр хурдны утасгүй сүлжээний боломжуудыг бүрэн ашиглах болно.

Моторолагийн бүтээгдэхүүн хариуцсан дэд ерөнхийлөгч Дэн Дери саяхан Digital Trends сэтгүүлд өгсөн ярилцлагадаа "Ирэх жилүүдэд 5G нь илүү хурдан өгөгдөл, өндөр зурвасын өргөнийг хүргэж, утасны програм хангамжийг одоо байгаа утасгүй технологиос 10 дахин хурдан хурдасгах болно" гэжээ.

Энэ үүднээс програм хангамжийн компаниуд 5G-ийг орчин үеийн хэрэглээнд нэвтрүүлэхээр ажиллах болно. Одоогоор 20 гаруй оператор сүлжээгээ шинэчлэхээ мэдэгдээд байна. Тиймээс хөгжүүлэгчид 5G-ийн давуу талыг ашиглахын тулд тохирох API-г ашиглахаар ажиллаж эхлэх болно. Технологи нь дараахь зүйлийг мэдэгдэхүйц сайжруулах болно.

  • Сүлжээний програмын аюулгүй байдал, ялангуяа Сүлжээний зүсэлт.
  • Хэрэглэгчийн ID-тай ажиллах шинэ аргуудыг өгөх.
  • Хоцролт багатай програмуудад шинэ функц нэмэх боломжийг танд олгоно.
  • AR/VR системийн хөгжилд нөлөөлнө.

5. Хялбар баталгаажуулалт

Баталгаажуулалт нь нууц мэдээллийг хамгаалах үр дүнтэй үйл явц болж байна. Нарийн технологи нь програм хангамжийн хакерд өртөмтгий төдийгүй хиймэл оюун ухаан, тэр ч байтугай квант тооцоололыг дэмждэг. Гэхдээ програм хангамж хөгжүүлэлтийн зах зээл дээр дуут шинжилгээ, биометр, нүүр царай таних гэх мэт олон шинэ төрлийн баталгаажуулалтууд аль хэдийн ажиглагдаж байна.

Энэ үе шатанд хакерууд онлайн хэрэглэгчийн ID болон нууц үгийг хуурамчаар үйлдэх янз бүрийн арга олдог. Гар утасны хэрэглэгчид хурууны хээ эсвэл нүүрний сканнераар ухаалаг утсандаа нэвтэрч дассан тул баталгаажуулах хэрэгслийг ашиглан кибер хулгайд өртөх магадлал бага байх тул шинэ баталгаажуулах чадвар шаардлагагүй болно. Энд SSL шифрлэлт бүхий олон хүчин зүйлийн баталгаажуулалтын хэрэгслүүд байна.

  • Soft Tokens нь таны ухаалаг утсыг олон хүчин зүйлийн баталгаажуулагч болгон хувиргадаг.
  • EGrid загварууд нь ашиглахад хялбар бөгөөд энэ салбарт танигч баталгаажуулагчийн түгээмэл хэлбэр юм.
  • Бизнесүүдэд зориулсан хамгийн сайн баталгаажуулалтын програмуудын зарим нь RSA SecurID Access, OAuth, Ping Identity, Authx, Aerobase юм.

Энэтхэг, АНУ-д нэвтрэлт танилт, биометрийн чиглэлээр өргөн хүрээтэй судалгаа хийдэг програм хангамжийн компаниуд байдаг. Тэд мөн дуу хоолой, нүүр царай, зан төлөв, биометрийн баталгаажуулалтад зориулсан шилдэг программ хангамжийг бий болгохын тулд хиймэл оюун ухааныг сурталчилж байна. Одоо та дижитал сувгуудыг хамгаалж, платформын чадавхийг сайжруулах боломжтой.

дүгнэлт

2020 онд программ хангамжийн хөгжүүлэлтийн хурд нэмэгдэх хандлагатай байгаа тул програмистуудын амьдрал илүү хэцүү байх шиг байна. Боломжтой хэрэгслийг ашиглахад хялбар болно. Эцсийн эцэст энэхүү дэвшил нь шинэ дижитал эрин үе рүү орж буй динамик ертөнцийг бий болгоно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх