უკან დაბრუნება
SiTech
პატარა პროგრამირების ხრიკები: რატომ ამარტივებს მცირე ცოდნა ყოველდღიურ სამუშაოს
SiTech AI Team2 წთ. საკითხავი

პატარა პროგრამირების ხრიკები: რატომ ამარტივებს მცირე ცოდნა ყოველდღიურ სამუშაოს

უილ კელეჰერი ამტკიცებს, რომ ინჟინრის ყოველდღიური პროდუქტიულობის დიდი ნაწილი მცირე, დამოუკიდებელი ცოდნის ნატეხებიდან მოდის — git-ის „პიკაქსიდან“ ლოგარითმულ მეტრიკებამდე.

რატომ აქვს მნიშვნელობა მცირე ცოდნას

უილ კელეჰერი ახალ ბლოგპოსტში ამტკიცებს, რომ ყოველდღიური საინჟინრო პროდუქტიულობის მოულოდნელად დიდი ნაწილი მცირე ცოდნის ნატეხებიდან მოდის: იცი, რომ ენაში რაღაც ფუნქცია არსებობს; იცი, რომ აუხსნელი TCP-ის დაყოვნება ალბათ Nagle-ის ალგორითმს უკავშირდება; გახსოვს სწორი git-ის ბრძანება რთული სიტუაციიდან გამოსასვლელად; იცი ხრიკი ფაილის გადასაწერად.

ტერმინალსა და Git-ში

მისი მაგალითები ტერმინალიდან იწყება. Ctrl+R ბრძანებების ისტორიას ეძებს, fzf-ის დაყენება კი ამ ძიებას ბუნდოვან (fuzzy) ხდის; atuin ისტორიას საძიებელი SQLite ბაზით ანაცვლებს; per-directory-history საშუალებას გაძლევს, მონაცვლეობით მოძებნო მხოლოდ მიმდინარე დირექტორიაში გაშვებული ბრძანებები ან ყველა წინა ბრძანება. Git-ში git log -S pattern — ე.წ. „პიკაქსი“ — ჩამოთვლის ყველა commit-ს, რომელმაც მოცემული სტრიქონი დაამატა ან წაშალა; ავტორის თქმით, განსაკუთრებით სასარგებლოა ძველ კოდურ ბაზებზე. git log -G მსგავსია, მაგრამ აჩვენებს იმასაც, როცა სტრიქონი უბრალოდ გადაადგილდა. ხოლო git checkout - წინა HEAD-ს უბრუნდება, ისევე როგორც cd - წინა დირექტორიას.

ის ასევე ამბობს, რომ find სავარაუდოდ აღარ გჭირდებათ: ბევრი find-ბრძანება ჩანაცვლდება გლობებით, როგორიცაა **/*.md, რასაც უმეტესი shell-ები მზადაა მხარს უჭერენ — bash-ს კი ჯერ shopt -s globstar სჭირდება. zsh-ის გაფართოებული ავტოდასრულება, მისი შენიშვნით, ნაგულისხმევად ჩართული არაა და რამდენიმე სტრიქონით აქტიურდება.

ბაზები, მეტრიკები და JavaScript

რამდენიმე ხრიკი პასუხის უფრო სწრაფად მიღებას ეხება. SELECT FROM-ის გარეშე SQL-ში მუშაობს და სწრაფი გზაა შეამოწმო, როგორ იქცევა ფუნქცია ან გაიხსენო, რას აბრუნებს SELECT TRUE <> NULL. PostgreSQL-საც და MySQL-საც აქვთ explain analyze, რომელიც მოთხოვნას ნამდვილად ასრულებს და შესრულების შესახებ გაცილებით მეტ ინფორმაციას იძლევა, ვიდრე ჩვეულებრივი explain. მეტრიკებში კი ლოგარითმული კალათის, მაგალითად Math.floor(Math.log10(count))-ის, ჩაწერა მნიშვნელობის განაწილების წარმოდგენას გაძლევს და არა მხოლოდ საშუალოს.

JavaScript-ის მხრივ ის ასახელებს Array.flatMap-ს, Object.entries-ს და Promise.withResolvers-ს როგორც ცოდნის ღირს თანამედროვე შესაძლებლობებს, და ერთ Node.js ხრიკსაც განსაკუთრებული ეფექტით: https.Agent-ის შექმნა და fetch-ის გამოძახებებში მისი გადაცემა გარე რესურსთან კავშირს ღიად ინახავს, რასაც დაყოვნებაზე დრამატული გავლენა შეიძლება ჰქონდეს.

კომპანიის ცოდნა იმავე მასალისგან შედგება

კომპანიის შიგნით, აღნიშნავს კელეჰერი, კიდევ უფრო მეტი ცოდნა ამ ფორმას იღებს: რომელი მონაცემთა წყარო გამოიყენო კონკრეტული პრობლემის გამართვისას, ვინ იცის ბევრი რომელიმე სფეროზე და სიამოვნებით დაგეხმარება, სად არის კარგი დოკუმენტაცია, რომელი სიგნალი ნიშნავს, რომ სერვისი ხელით უნდა გააფართოო, როგორია მოძრავი გადატვირთვის ბრძანება, რომელი უტილიტა ხდის მოსაბეზრებელ ამოცანას სკრიპტირებადს. წინა კომპანიაში ის ყოველდღე ერთ ხრიკს უზიარებდა საინჟინრო გუნდს Slack-ში — ტექნიკურსაც და კომპანიის შიდა საკითხებსაც. ათიდან ცხრა ხრიკის მცოდნეებსაც კი მეათე გამოადგებოდათ, და დღეში ერთი ხრიკი სწორი დოზაა, რომ ხალხი ინფორმაციით არ გადაიტვირთოს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.