Дурна незразумелае праграмаванне ў цяжкі час (2018) | Mewayz Blog
Hacker News

Дурна незразумелае праграмаванне ў цяжкі час (2018)

Каментарыі

1 min read Via blog.podsnap.com

Mewayz Team

Editorial Team

Hacker News
<цела>

Сіла і пакуты For-Comprehension у Scala

Разуменне Scala з'яўляецца краевугольным каменем элегантнага функцыянальнага праграмавання. Гэта дазваляе распрацоўшчыкам паслядоўна выконваць аперацыі над манадычнымі тыпамі, такімі як `Option`, `Future` і `List`, у чыстым, імператыўным стылі. Замест заблытанай кашы з укладзеных выклікаў `flatMap` і `map`, мы можам напісаць код, які будзе адначасова чытэльным і выразным. Аднак гэты сінтаксічны цукар, хоць і вельмі смачны, мае схаваныя выдаткі. Кампілятар выдаляе цукар з абазначэння "для" ў асноўны манадычны ланцужок, але гэты працэс жорсткі, абмежаваны фіксаваным наборам метадаў і часам можа зацямняць сапраўдную вылічальную структуру. Для каманд, якія ствараюць складаныя сістэмы, такія як модульная бізнес-АС у Mewayz, разуменне і кантроль гэтага абясцукравання мае вырашальнае значэнне для напісання надзейнага, прадукцыйнага і зручнага для абслугоўвання кода.

Што такое аплікатыўная дэцугарацыя і чаму гэта важна?

Традыцыйна `for`-comprehension выдаляе цукар у ланцуг выклікаў `flatMap` з выклікам `map` у канцы. Гэта ўяўляе сабой манадычную паслядоўнасць, дзе кожны крок у разуменні залежыць ад выніку папярэдняга. Але што, калі вашы аперацыі незалежныя? Праверце форму рэгістрацыі карыстальніка: вам трэба праверыць імя карыстальніка, адрас электроннай пошты і пароль. Гэтыя праверкі не залежаць адна ад адной; яны могуць і павінны быць выкананы незалежна адзін ад аднаго, а іх вынікі аб'яднаны. Гэта сфера прыкладных функтараў. Прыкладное праграмаванне дазваляе праводзіць паралельную праверку і камбінаванне, прапаноўваючы патэнцыйныя перавагі ў прадукцыйнасці і больш дэкларатыўную апрацоўку памылак. Стандартная натацыя `for`, прывязаная да манадычнай паслядоўнасці, не можа выказаць гэты шаблон натыўным спосабам.

<цытата> «Здольнасць ператвараць цукар для разумення ў прыкладныя аперацыі, дзе гэта магчыма, змяняе гульню. Яна разблакуе больш дэкларатыўны код і можа значна павысіць эфектыўнасць за кошт незалежных вылічэнняў». - Інжынер платформы Mewayz

Прымяненне "Ужыць у межах": новая стратэгія абясцукравання

Канцэпцыя "Ужыць унутры" заключаецца ў тым, каб зрабіць кампілятар Scala разумнейшым. Замест таго, каб слепа абясшкоджваць кожны генератар (`<-`) у 'for'-разуменні ў 'flatMap', больш прасунутая стратэгія абясцукравання будзе аналізаваць залежнасці паміж радкамі. Калі значэнне, згенераванае ў наступным радку, не залежыць ад значэння з папярэдняга радка, для дэцукравання можа выкарыстоўвацца аплікацыйны `ap` (або больш знаёмая камбінацыя `product` і `map`) замест манадычнага `flatMap`. Гэта пераўтворыць паслядоўны ланцужок у графік паралельных вылічэнняў. Такія інструменты, як бібліятэка kittens, вывучылі гэта для аўтаматычнага вывядзення, але гэтая ідэя падштурхоўвае да больш фундаментальных магчымасцей у самой мове.

У Mewayz, дзе нашы модулі бізнес-АС часта апрацоўваюць праверку і агрэгацыю даных з некалькіх незалежных крыніц, выкарыстанне прыкладнога стылю прыводзіць да:

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

Будучыня экспрэсіўных вылічэнняў у Scala

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

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Часта задаюць пытанні

Сіла і боль For-Comprehension у Scala

Разуменне Scala з'яўляецца краевугольным каменем элегантнага функцыянальнага праграмавання. Гэта дазваляе распрацоўшчыкам паслядоўна выконваць аперацыі над манадычнымі тыпамі, такімі як `Option`, `Future` і `List`, у чыстым, імператыўным стылі. Замест заблытанай кашы з укладзеных выклікаў `flatMap` і `map`, мы можам напісаць код, які будзе адначасова чытэльным і выразным. Аднак гэты сінтаксічны цукар, хоць і вельмі смачны, мае схаваныя выдаткі. Кампілятар выдаляе цукар з абазначэння "для" ў асноўны манадычны ланцужок, але гэты працэс жорсткі, абмежаваны фіксаваным наборам метадаў і часам можа зацямняць сапраўдную вылічальную структуру. Для каманд, якія ствараюць складаныя сістэмы, такія як модульная бізнес-АС у Mewayz, разуменне і кантроль гэтага абясцукравання мае вырашальнае значэнне для напісання надзейнага, прадукцыйнага і зручнага для абслугоўвання кода.

Што такое аплікатыўная дэцугарацыя і чаму гэта важна?

Традыцыйна `for`-comprehension выдаляе цукар у ланцуг выклікаў `flatMap` з выклікам `map` у канцы. Гэта ўяўляе сабой манадычную паслядоўнасць, дзе кожны крок у разуменні залежыць ад выніку папярэдняга. Але што, калі вашы аперацыі незалежныя? Праверце форму рэгістрацыі карыстальніка: вам трэба праверыць імя карыстальніка, адрас электроннай пошты і пароль. Гэтыя праверкі не залежаць адна ад адной; яны могуць і павінны быць выкананы незалежна адзін ад аднаго, а іх вынікі аб'яднаны. Гэта вобласць аплікатыўных функтараў. Прыкладное праграмаванне дазваляе праводзіць паралельную праверку і камбінаванне, прапаноўваючы патэнцыйныя перавагі ў прадукцыйнасці і больш дэкларатыўную апрацоўку памылак. Стандартная натацыя `for`, прывязаная да манадычнай паслядоўнасці, не можа выказаць гэты шаблон натыўным спосабам.

Прымяненне "Ужыць у межах": новая стратэгія абясцукравання

Канцэпцыя "Ужыць унутры" заключаецца ў тым, каб зрабіць кампілятар Scala разумнейшым. Замест таго, каб слепа абясцукроўваць кожны генератар (`

Будучыня экспрэсіўных вылічэнняў у Scala

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

Гатовыя спрасціць свае аперацыі?

Незалежна ад таго, патрэбна вам CRM, выстаўленне рахункаў, HR або ўсе 208 модуляў — Mewayz дапаможа вам. Больш за 138 тыс. прадпрыемстваў ужо зрабілі пераход.

Пачаць бясплатна →
.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime