Go програмчлалын хэлийг гаргах 1.13

Оруулсан програмчлалын хэлний хувилбар 1.13 руу оч, хөрвүүлсэн хэлний өндөр гүйцэтгэлийг код бичихэд хялбар, хөгжүүлэлтийн хурд, алдаанаас хамгаалах зэрэг скрипт хэлний давуу талуудтай хослуулсан эрлийз шийдэл болгон олон нийтийн оролцоотойгоор Google-ээс боловсруулж байна. Төслийн код тараасан BSD лицензийн дагуу.

Go-ийн синтакс нь Python хэлнээс зарим зээл авсан Си хэлний танил элементүүд дээр суурилдаг. Хэл нь нэлээд товч боловч кодыг унших, ойлгоход хялбар байдаг. Go код нь виртуал машин ашиглахгүйгээр бие даан ажилладаг хоёртын файлд хөрвүүлэгддэг (профайл үүсгэх, дибаг хийх болон бусад ажиллах үеийн асуудлыг илрүүлэх дэд системүүд нь дараах байдлаар нэгтгэгддэг. ажиллах үеийн бүрэлдэхүүн хэсгүүд), энэ нь танд C програмуудтай харьцуулахуйц гүйцэтгэлд хүрэх боломжийг олгодог.

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

Үндсэн инновациGo 1.13 хувилбарт танилцуулсан:

  • Crypto/tls багц нь протоколын дэмжлэгийг анхдагчаар идэвхжүүлсэн байна TLS 1.3 програм. Ed25519 тоон гарын үсгийг дэмждэг "crypto/ed25519" шинэ багцыг нэмсэн;
  • Хоёртын тоо (жишээ нь 0b101), наймтын (0o377), төсөөллийн (2.71828i) болон арван арвантын хөвөгч цэгийг (0x1p-1021) тодорхойлох шинэ тоон үсгийн угтваруудыг дэмжих, цифрүүдийг нүдээр ялгахын тулд "_" тэмдэгт ашиглах чадварыг нэмсэн. олон тоогоор (1_000_000);
  • "‹‹" болон "››" операторуудыг ашиглахаас өмнө uint төрөл рүү шаардлагагүй хөрвүүлэхээс сэргийлж, ээлжийн үйл ажиллагаанд зөвхөн гарын үсэг зураагүй тоолуур ашиглах хязгаарлалтыг арилгасан;
  • Illumos платформын дэмжлэгийг нэмсэн (GOOS=illumos). Android 10 платформтой нийцтэй байдал хангагдсан. FreeBSD (11.2) болон macOS (10.11 “El Capitan”)-ийн хамгийн бага хувилбаруудад тавигдах шаардлагыг нэмэгдүүлсэн.
  • GOPATH-ийн өөр хувилбар болгон ашиглаж болох шинэ модулийн системийг үргэлжлүүлэн хөгжүүлэх. Go 1.13-д өмнө нь зарласан төлөвлөгөөний эсрэгээр энэ систем нь анхдагчаар идэвхжээгүй бөгөөд GO111MODULE=on хувьсагчаар идэвхжүүлэх эсвэл модулиудыг автоматаар ашиглах контекст ашиглахыг шаарддаг. Шинэ модулийн систем нь хувилбарын нэгдсэн дэмжлэг, багц хүргэх чадвар, хараат байдлын менежментийг сайжруулсан. Модулиудын тусламжтайгаар хөгжүүлэгчид GOPATH модны дотор ажиллахгүй болж, хувилбарын хамаарлыг тодорхой тодорхойлж, давтагдах боломжтой бүтээцүүдийг бий болгож чадна.

    Өмнөх хувилбаруудаас ялгаатай нь шинэ системийн автомат хэрэглүүр нь go.mod файл нь одоогийн ажлын лавлах эсвэл үндсэн директорт байгаа үед, тэр дундаа go командыг ажиллуулж байх үед, тэр дундаа GOPATH/src директорт байгаа үед ажилладаг. Орчны шинэ хувьсагчдыг нэмсэн: нийтэд нээлттэй модулиудын замыг тодорхойлдог GOPRIVATE, go.sum файлд байхгүй модулиудын шалгах өгөгдлийн санд хандах параметрүүдийг зааж өгдөг GOSUMDB;

  • "Явах" команд нь өгөгдмөлөөр модулиудыг ачаалж, Google-ээс (proxy.golang.org, sum.golang.org болон index.golang.org) хадгалдаг модулийн толин тусгал болон шалгах өгөгдлийн санг ашиглан тэдгээрийн бүрэн бүтэн байдлыг шалгадаг;
  • Зөвхөн хоёртын багцуудыг дэмжихээ больсон; багцыг "//go: зөвхөн хоёртын багц" горимд бүтээхэд одоо алдаа гарлаа;
  • "Явж авах" командын "@patch" дагаварын дэмжлэгийг нэмсэн бөгөөд энэ нь модулийг хамгийн сүүлийн үеийн засвар үйлчилгээний хувилбар болгон шинэчлэх шаардлагатайг харуулж байгаа боловч одоогийн үндсэн эсвэл бага хувилбарыг өөрчлөхгүйгээр;
  • Эх сурвалжийн хяналтын системээс модулиудыг татаж авах үед "явах" команд нь одоо хувилбарын мөрөнд нэмэлт шалгалт хийж, псевдо хувилбарын дугаарыг репозитороос мета өгөгдөлтэй тохируулахыг оролддог;
  • Нэмэлт дэмжлэг алдааны шалгалт (алдаа боох) стандарт алдаа зохицуулагчийг ашиглах боломжийг олгодог боодол үүсгэх замаар. Жишээлбэл, алдаа "e"-г аргыг зааж өгснөөр "w" алдааг тойрч болно Буулгах, "w" буцаана. "e" болон "w" алдаа хоёулаа программд байдаг бөгөөд "w" алдаан дээр үндэслэн шийдвэр гаргадаг боловч "e" нь "w"-д нэмэлт контекст өгдөг эсвэл өөр өөрөөр тайлбарладаг;
  • Ашиглалтын үеийн бүрэлдэхүүн хэсгүүдийн гүйцэтгэлийг оновчтой болгосон (хурд 30% хүртэл нэмэгдсэн) болон санах ойг үйлдлийн системд илүү түрэмгий байдлаар буцааж өгсөн (өмнө нь санах ойг тав ба түүнээс дээш минутын дараа буцааж өгдөг байсан бол одоо шууд овоолгын хэмжээг багасгасны дараа).

Эх сурвалж: opennet.ru

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