კომენტარი: Elle's Blog https://samurai.ge Software development, design & other personal stuff Tue, 11 Jun 2019 13:23:34 +0000 hourly 1 https://wordpress.org/?v=4.9.25 კომენტარი ჩანაწერზე ჩემი გაზაფხულის საკითხავი 2019 (Babisa) https://samurai.ge/2019/06/11/my-spring-booklist-2019/#comment-114764 Tue, 11 Jun 2019 13:23:34 +0000 http://samurai.ge/?p=960#comment-114764 👌]]> ბევრმა თემამ და წიგნმა დამაინტერესა 🧡👌

]]>
კომენტარი ჩანაწერზე მაღლიველი სტუდენტი და NASA-ს ჯავას სტანდარტი (admin) https://samurai.ge/2018/03/10/jpl-java-coding-standard-and-georgia/#comment-104807 Sun, 29 Jul 2018 19:19:45 +0000 http://samurai.ge/?p=904#comment-104807 მადლობა კომენტარისთვის.

მესმის კი 🙂 ზუსტად მაგას ვგულისხმობ მეც, რომ Atomic და volatile სულ სხვადასხვა დანიშნულებით გამოიყენება. volatile ორ-ნაბიჯიან ოპერაციას არ იცავს. ერთადერთი რისი გაკეთებაც შეუძლია, არის რომ არ დაკეშირდეს ცვლადის მნიშვნელობა და ყველა ნაკადი მის ახალ ვერსიას ხედავდეს (იმიტომ რომ ისე კეშირება ხდება ცვლადების).

‘მხოლოდ წაკითხვა არის ატომური’ ამაში ვგულისხმობ, რომ 32 ბიტზე დიდი ტიპები რაც არის, მაგალითად long და double, ერთიანად არ იკითხება. შეიძლება პირველი 32 ბიტი წაიკითხოს, მერე რამე ნაკადმა შეცვალოს მნიშვნელობა და ამან მეორე 32 ბიტი უკვე სხვა რაღაცისა აიღოს. volatile-ის დროს ამის დაზღვევა ხდება, რომ ატომურად მოხდეს მნიშვნელობის წაკითხვა.

ინკრემენტს და სხვა მსგავს ოპერაციებს ვერ გასწვდება და სინქრონიზაცია ან Atomic იქნება ნამდვილად საჭირო. volatile მე მხოლოდ flag ტიპის ცვლადებზე შემხვედრია, სხვაგან არ ვიცი სად იყენებენ.

]]>
კომენტარი ჩანაწერზე მაღლიველი სტუდენტი და NASA-ს ჯავას სტანდარტი (itsmeagain) https://samurai.ge/2018/03/10/jpl-java-coding-standard-and-georgia/#comment-104173 Tue, 17 Jul 2018 11:28:24 +0000 http://samurai.ge/?p=904#comment-104173 იდეაში, წაკითხვაც და ჩაწერაც, ცალცალკე, ატომური ოპერაციებია, volatile-ის შემთხვევაში პრობლემა სხვა რაღაცაშია. მაგალითად ინკრიმენტი არის ორი ოპერაცია: ძველი მნიშვნელობის წაკითხვა და ახალი მნიშვნელობის ჩაწერა. ამ ორ ოპერაციას შორის, volatile-ის შემთხვევაში, შეიძლება ცვლადის მნიშვნელობა უკვე სხვა ნაკადს ჰქონდეს შეცვლილი და საბოლოოდ არასწორი შედეგი მივიღოთ. მაგალითად ორ ნაკადში ვაინკრემენტებთ x ცვლადს, x++ საშუალებით, თეორიულად შესაძლებელია მოხდეს შემდეგი რამ:

> volatile int x = 0
> ნაკადი 1: წაიკითხა x = 0
> სანამ პირველმა ნაკადმა ჩაწერა გაზრდილი მნიშვნელობა, მეორე ნაკადმაც წაიკითხა, რომ x = 0
> ორივე ნაკადი ინკრემენტს უკეთებს 0-ს და x-ს ანიჭებს მნიშვნელობას 1, ჩვენი მოლოდინით კი x უნდა ყოფილიყო 2.

ამის თავიდან ასაცილებლად საჭირო იქნებოდა synchronized ბლოკის გამოყენება. Atomic ცვლადები კი შეიძლება ითქვას, რომ volatile-იც არის და synchronized-იც. მაგალითად AtomicInteger-ს თუ ვეტყვით incrementAndGet() ინკრემენტაცია ერთ ოპერაციაში მოხდება და დარწმუნებული ვიქნებით, რომ ოპერაციის შესრულებამდე სხვა ნაკადი ცვლადის მნიშვნელობას ვერ შეცვლის. პროცესორებს აქვთ ატომური ოპერაციების მხარდაჭერა, რომლებსაც არ აქვთ, იმათთვის JVM თავისით აგვარებს, რომ სინქრონიზებული იყოს Atomic ცვლადებზე ოპერაციები.

]]>
კომენტარი ჩანაწერზე მაღლიველი სტუდენტი და NASA-ს ჯავას სტანდარტი (admin) https://samurai.ge/2018/03/10/jpl-java-coding-standard-and-georgia/#comment-87480 Tue, 13 Mar 2018 04:27:24 +0000 http://samurai.ge/?p=904#comment-87480 დიდი მადლობა 🙂 სწორი შენიშვნაა, პირიქით უნდა დამეწერა char-ზე და ჩავასწორე.
მეც იგივე აზრზე ვარ, რომ მშვენივრად დალაგებულია ენა და ფაქტიურად ყველაფერი ლოგიკურად აიხსნება.

volatile-ს რაც შეეხება, როგორც მესმის იგივეს არ აკეთებს რასაც atomic კლასები. უბრალოდ უზრუნველყოფს რომ არ დაკეშირდეს ცვლადი და ნაკადები ახალ მნიშვნელობას ხედავდნენ. მარტო წაკითხვა არის ატომური, სხვა არაფერი და ატომური ოპერაციებისთვის არ გამოდგება. საერთოდ flag ტიპის ცვლადების გარდა ამის გამოყენება არ შემხვედრია.

]]>
კომენტარი ჩანაწერზე მაღლიველი სტუდენტი და NASA-ს ჯავას სტანდარტი (ძია ანონი) https://samurai.ge/2018/03/10/jpl-java-coding-standard-and-georgia/#comment-87463 Tue, 13 Mar 2018 00:28:37 +0000 http://samurai.ge/?p=904#comment-87463 ყველა ენას აქვს ასეთი “gotcha” მომენტები. ჯავაში ის მიყვარს, რომ თუ დაფიქრდები რატომ ხდება ასე, მიხვდები ადვილად, იმიტომ რომ გააზრებული და კარგად დამუშავებული ენაა. შეადარე ჯავასკრიპტს ან პერლს. მთელი აიტი სფეროს ხუმრობების მიზანია, ისეთი აუხსნელი რამეები ხდება.

> ეს იმიტომ რომ int დაყავს char-ზე
პირიქით იგულისხმე მგონი.

volatile-ს რაც შეეხება, ძალიან სუსტი დაცვაა და უმეტეს შემთხვევაში არ აკეთებს იმას, რაც სინამდვილეში გინდა. მაგისთვის შექმნეს atomic კლასები (AtomicInt, AtomicLong, etc) და ჯობია ყოველთვის ისინი გამოიყენო volatile-ის ნაცვლად.

]]>
კომენტარი ჩანაწერზე DevFest 2017 გამოსვლა: Continuous Integration-Delivery-Deployment (ყველაზე ძვირიანი კოდი, NASA-ს სტანდარტები და რისკიანი პროგრამისტები – Elle's Blog) https://samurai.ge/2018/01/22/devfest-2017-continuous-integration-delivery-deployment/#comment-87045 Thu, 08 Mar 2018 19:02:06 +0000 http://samurai.ge/?p=815#comment-87045 […] მთავარია ცვლილების შეტანა სწრაფად და იაფად შევძლოთ, თორემ ეგეთი კოდიც თუ ძვირი დაგვიჯდა, […]

]]>
კომენტარი ჩანაწერზე DevFest 2017 გამოსვლა: Continuous Integration-Delivery-Deployment (როგორ გავხდეთ უკეთესი პროგრამისტი ეფექტურად – Elle's Blog) https://samurai.ge/2018/01/22/devfest-2017-continuous-integration-delivery-deployment/#comment-86210 Tue, 27 Feb 2018 14:06:33 +0000 http://samurai.ge/?p=815#comment-86210 […] გააკეთეთ ავტომატიზაციები. ჩვენი სფეროს ყველაზე სტრესული პროცესები ავტომატიზირებადია. ეს ძალიან ბევრ ნერვებს და დროს დაგიზოგავთ. […]

]]>
კომენტარი ჩანაწერზე The Timeless Way of Building (admin) https://samurai.ge/2015/07/15/the-timeless-way-of-building/#comment-83287 Sun, 28 Jan 2018 08:29:35 +0000 http://samurai.ge/?p=572#comment-83287 დიდი მადლობა ნინო! 🙂 ძალიან მიყვარს კრისტოფერ ალექსანდერის შეხედულებები. თუ რამე გექნება გასაზიარებელი, სიამოვნებით დავათვალიერებ 🙂

]]>
კომენტარი ჩანაწერზე The Timeless Way of Building (ნინო) https://samurai.ge/2015/07/15/the-timeless-way-of-building/#comment-83112 Fri, 26 Jan 2018 11:44:29 +0000 http://samurai.ge/?p=572#comment-83112 ძალიან მომეწონა პატერნებზე შენი პოსტი, ელენე!
ამას წინათ უნივერსტეტში მთხოვეს წარმომედგინა ქართლი ლიტერატურა ან კონსპექტი, დავიწყე დაგუგლვა, რა თქმა უნდა შედეგი არასახარბიელო იყო, სამაგიეროდ აღმოვაჩინე შენი ბლოგი და ძალიან მესიამოვნა! არ ველოდი კრისტოფერ ალექსანდერზე თუ ვნახავდი ინფოს, წავიკითხე სულმოუთქმელად!) ფასადზე ვკითხულობდი მის ნააზრევს ადრე, ფოტოებიც რა კარგად შეგირჩევია!

]]>
კომენტარი ჩანაწერზე დინამიური მასივი (გიორგი) https://samurai.ge/2012/10/24/%e1%83%93%e1%83%98%e1%83%9c%e1%83%90%e1%83%9b%e1%83%98%e1%83%a3%e1%83%a0%e1%83%98-%e1%83%9b%e1%83%90%e1%83%a1%e1%83%98%e1%83%95%e1%83%98/#comment-80602 Mon, 04 Dec 2017 14:50:53 +0000 http://samurai.ge/?p=481#comment-80602 კარგია რო გაუგეთ ერთმანეთს. მომიტევე ჩემი ქართულისთვის 7 წელია არ მილაპარაკნია ქართულად და მიჭირს აზრის ჩამოყალიბება 🙂

]]>