რა backend შემქმნელი უნდა იცოდეს. მდებარეობა Frontendent to backend

Ვაკანსია:
backend ვებ დეველოპერი

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

  1. რა ცოდნა და უნარები უნდა იყოს backend- ვებ დეველოპერი?
  2. რა არის ინსტრუმენტარიტი backend ვებ დეველოპერი?
  3. რა არის კომპანიის მოთხოვნები პოტენციური თანამშრომლების ფორმირებისათვის?
  4. რა მოთხოვნებს აქვს სამუშაო გამოცდილების მოთხოვნები?
  5. არსებობს თუ არა სპეციალური მოთხოვნები, რომლებიც კომპანიის სპეციფიკის გამო?

არტურ ბოჟენოვი, შიდა ავტომატიზაციის დეპარტამენტის უფროსი პროგრამისტი

Timur Himullin, ბუნებრივი ინჟინერი ავტომატიზაციის ტესტირების დეპარტამენტის განვითარების ტექნოლოგიები დადებითი ტექნოლოგიები

1. არტურ ბოჟენოვი: Backend ვებ დეველოპერი უნდა ჰქონდეს შემდეგი უნარები და ცოდნა:

  • მრავალფუნქციური პროგრამირება;
  • მჟავა (ატომური, თანმიმდევრულობა, იზოლაცია, საიმედოობა, საიმედოობა) პრინციპები და პრაქტიკაში მათი გამოყენება;
  • ქსელის არქიტექტურისა და ოქმების ზოგადი პრინციპები;
  • hTTP მოთხოვნის / რეაგირების სიცოცხლის ციკლი, გადასასვლელი გზა;
  • ქსელის კავშირების დაცვა (HTTPS). ავტორიზაცია. რესურსების ხელმისაწვდომობის დასადგენად;
  • დასვენება, ODATA, WEBAPI, SOAP;
  • ვებ-მომსახურება;
  • ვებ აპლიკაციის ჰოსტინგი (IIS, NGINX, Lighttpd, Node.js, Apache);
  • გამოსავალი, დაბალანსება / მარშრუტიზაციის მოთხოვნები;
  • ხე;
  • მონაცემთა ქეშირება;
  • მონაცემთა შენახვის (შენახვის მეთოდის ადეკვატური არჩევანი, რაც დამოკიდებულია ამოცანებზე);
  • მუშაობა დიდი რაოდენობით მონაცემებით.

2. არტურ ბოჟენოვი: ძირითადი ინსტრუმენტარიუმის Backend ვებ დეველოპერი:

  • კომფორტული IDE (ვიზუალური სტუდია, NetBeans და ა.შ.);
  • მომსახურება ან კომუნალური შექმნა / ნახვის / შეცვლის Regex გამონათქვამები, JSON, XML, ტექსტი არასათანადო კოდირებით;
  • Google და Stackoverflow;
  • Mongodb / redis / memcached;
  • Elasticsearch / kibana;
  • RabbitMQ / Zeromq / MSMQ და სხვა MQ.

ტიმური ჰემულაინი: რაც შეეხება IDE- ს, ეს არის გემოვნების შემთხვევაში, მინიმუმ Notepad (Sabloim, NPP), მაგრამ მე შევხედე უკეთესი თვითმფრინავის პროდუქტების მიმართულებით და სხვები, რომლებიც ერთმანეთთან არიან ინტეგრირებული.

3. არტურ ბოჟენოვი: უმაღლესი (სურვილისამებრ) ტექნიკური (საჭირო). გამოცდილება Პრაქტიკული სამუშაო უფრო მნიშვნელოვანია.

ტიმური ჰემულაინი: რაც შეეხება განათლებას, ეს არის უკეთესი ტექნიკური ან მათემატიკური.

4. არტურ ბოჟენოვი: 3-5 წლის არასამთავრობო frontend განვითარების.

ტიმური ჰემულაინი: Backend დეველოპერებისთვის, ვერ განვმარტე.

5. არტურ ბოჟენოვი: ანალიტიკური გონება.

ტიმური ჰემულაინი: რეალური უნარი იმუშაოს გუნდში და მოლაპარაკებების უნარი. დეველოპერი, რომელმაც არ იცის, თუ როგორ უნდა მოახდინოს მოდელი და აგრძელებს მუშაობას დაუყოვნებლივ გარეშე არქიტექტურისა და ყველა აპლიკაციის მოდულის ურთიერთქმედების გარეშე, მე არ ვიღებ ყველგან. გამოაცხადეთ, იჯდეს!

ევგენი კზინი, ქსელის პროექტების დეპარტამენტის უფროსი,შპს "ექიმი ვებ"

1. პირველ რიგში, Backend ვებ დეველოპერი უნდა ჰქონდეს საერთო ბარგის ყველა დეველოპერისთვის - საინჟინრო აზროვნება, უნარი შესვლის არსი ამოცანა, decompose მას კომპონენტები და სწორად აირჩიეთ ინსტრუმენტები მოსაგვარებლად.

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

მეორეც, მნიშვნელოვანია ვებ დეველოპერი ინტერნეტის განვითარებისადმი მგრძნობიარე რეაგირება, გამოიყენოს ტექნოლოგიები და ინსტრუმენტები.

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

2. მე არ მოვუწოდებ კონკრეტულ პროგრამებს, რადგან თითოეული ასპექტის ეკვივალენტური ვარიანტებისთვის შესაძლებელია.

რა თქმა უნდა, ბრაუზერი, ყველა გაფართოებით, რომელიც აუცილებელია ვებ-გვერდზე ელემენტებისა და სკრიპტების ანალიზისა, გადამოწმებისა და მანიპულირება. შემდეგ კომუნალური, რომელიც საშუალებას აძლევს სხვადასხვა სახის საბაჟო HTTP მოთხოვნის გაგზავნას (მას შემდეგ, რაც 95% ვებ-გვერდი არის HTTP პროტოკოლი) და ანალიზი საგზაო და მონაცემთა გაცვლისა და მონაცემთა გაცვლის ანალიზი და სერვერზე დეტალურად. ასევე backend ვებ დეველოპერი საჭიროა ტექსტის რედაქტორისასურველია პროგრამირების ენების მხარდაჭერით, რომელიც გამოიყენება, ხელსაწყოები, პროფილაქტიკა და ვერსიების კონტროლი.

ცალკე, აღსანიშნავია ტექნიკური დოკუმენტაციის წერის ან გენერირების ინსტრუმენტები. დოკუმენტაცია კარგია, კარგი დოკუმენტაცია არ არის ცუდი.

და, რა თქმა უნდა, მთავარი ინსტრუმენტები ხელმძღვანელი და სწორი ხელები.

3. აბსოლუტურად აუცილებელია რუსული, შეძლებს ნათლად და ნათლად აცხადებდეს თქვენს აზრებს კოლეგებთან კომუნიკაციისას, როგორც წერილობით და ზეპირად. დანარჩენი, ჩვენ არ გვჭირდება განმცხადებლებს უმაღლესი ტექნიკური განათლების სავალდებულო გზით ან ნებისმიერი სერტიფიკატის ხელმისაწვდომობა - სამუშაოს ხარისხისა და პრაქტიკული ცოდნის მოგვარება.

4. აქ არის იგივე პრინციპი, როგორიც არის განათლება. გამოცდილება, გამოცდილება - უპირობო დადებითი, მაგრამ ჩვენ ინდივიდუალურად მიგვაჩნია.

5. თუ ინტერნეტში ზუსტად ვიმსჯელებთ, მაშინ ვებ-გვერდი უკვე წარმოადგენს განცხადების შექმნას, რომელიც მუშაობს საზოგადოებრივ გარემოში, რომლის ჭეშმარიტი განზრახვა უცნობია. პროგრამირების ნებისმიერი ქმედება, თქვენ უნდა ჰკითხოთ საკუთარ თავს კითხვები: რა მოხდება, თუ მომხმარებელი (თავდამსხმელი) ავტომატურად ამ ქმედების უსასრულო აღსრულებას? რა მოხდება, თუ განაცხადის შეყვანის მონაცემები თვითნებურად რედაქტირდება? რომ თუ ამ სერვისის ბმული ხდება ღია წვდომაიქნება სხვა მომხმარებლისთვის გადაცემული? და ა.შ.

ჩვენი საქმიანობის სპეციფიკის ძალით, ჩვენ ხშირად ვგრძნობთ თავდამსხმელებს და იმ მონაცემებს, რომელთანაც ჩვენ ვმუშაობთ გარკვეულ წრეებში, ამიტომ ზოგიერთი ჩვენი ვებ აპლიკაციები მოითხოვს განსაკუთრებით საფუძვლიან დაცვას.

ნიკოლაი ნიდერი, ახალი განვითარების ხელმძღვანელი, ბადო

1. Backend ვებ დეველოპერი Badoo, ისევე როგორც ნებისმიერი კარგი ინჟინერი, უნდა შეეძლოს გავიგოთ ამოცანა და შეძლებს ეფექტურად გადაჭრას არსებული ტექნოლოგიებისა და ინსტრუმენტების ფარგლებში. ჩვენ ვიყენებთ PHP + MySQL- ს, ამიტომ ჩვენი ვებ დეველოპერი პირველ რიგში პირველ რიგში PHP და SQL. უნდა იყოს პასუხისმგებელი და ვცდილობთ გავაკეთოთ მისი მუშაობა კარგად - დაიცვას ვადები, გააცნობიეროს პროდუქტის / ტექნიკური ღირებულება ამოცანა, რეაგირება საბოლოო ხარისხის.

2. ძირითადი კომპლექტი არის PHP, MySQL, NGINX, GIT, JIRA, IDE, საყვარელი ბრაუზერი და ბრძანების ხაზი. გარდა ამისა, ჩვენ გვაქვს დიდი რაოდენობით სხვადასხვა ინსტრუმენტები, სისტემები, ბიბლიოთეკები, რომლებიც დეველოპერები ყველგან იყენებენ გარკვეულ ამოცანებს. ზოგიერთი ამ ინსტრუმენტები ხელმისაწვდომია ღია წყაროდ, მაგალითად, Pinba არის რეალურ დროში PHP მონიტორინგის აგენტი, ჩვენი კოდი ფორმატირების ინსტრუმენტი არის PHPCF, PHP- ბლოკირება Leptica ბიბლიოთეკაში.

3. თუ პირი აკმაყოფილებს ჩვენს უნარებსა და ცოდნის მოთხოვნებს, მაშინ მზად ვართ მას ვთავაზობ მას, მიუხედავად მისი განათლების მიუხედავად.

4. სიტუაცია მსგავსია განათლების მდგომარეობის შესახებ: არ არის მკაცრი და ფორმალური მოთხოვნები.

5. ჩვენი პროექტები დიდი აუდიტორია და საკმარისად დატვირთული PHP- საზღვრები. In მწვერვალები ისინი გაუმკლავდნენ მდე 50 ათასი მოთხოვნა წამში. ამ თვალსაზრისით, განსაკუთრებულ ყურადღებას უთმობთ პროდუქტიულობის თემას. აუცილებელია ქეშირების, რეპლიკაციის, ოპტიმალური მუშაობის ძირითადი პრინციპების ძირითადი პრინციპები, რესურსების მოხმარების ოპტიმიზაცია და განაწილება. შეძლებს ნახოს და ლოკალიზება პროდუქტიულობის პრობლემა ნებისმიერ დონეზე.

დენის სტილისტოვი, ტექნოლოგიური განვითარების დეპარტამენტის უფროსი და კომპანია "NTC IT ROSA"

1. NTC IT- ში ასეთი პოზიციის კანდიდატი საჭირო იქნება შემდეგი უნარებით:

  • კარგი ცოდნა Ruby on რელსები 4.x;
  • ცოდნა ქცევის ორიენტირებული განვითარება;
  • კოლექტიური განვითარების პრინციპების ცოდნა - ვერსიების კონტროლის სისტემები, სამუშაო ტრეკერები და ა.შ.
  • მონაცემთა ბაზებთან გამოცდილება (ორივე რელაციური და nosql);
  • გამოცდილება slim / haml;
  • ცოდნა და გამოცდილება JavaScript / coffeescript;
  • cSS / SCSS ცოდნა.

2. NTC IT Rosa ვებ განვითარების ამჟამად გამოყენებული bootstrap ჩარჩო, ისევე როგორც JavaScript ჩარჩო Angularjs. PostgreSQL და Redis გამოიყენება მონაცემების შესანახად. RUBY- ზე RUBY- ის განვითარება RSPEC- ის ინსტრუმენტარის გამოყენებით ქცევის ორიენტირებული განვითარების მიდგომის შესაბამისად ხორციელდება.

3. უმაღლესი ტექნიკური განათლების არსებობა იქნება პლუს, მაგრამ პირველ რიგში ჩვენ არ შევხედავთ დიპლომს, არამედ პოტენციური კანდიდატის უნარ-ჩვევებსა და გამოცდილებას.

4. გამოყენებული იქნა გამოცდილება სასურველია წლიდან პროექტებში, სადაც გამოყენებული იქნა ტექნოლოგიების პირველ პარაგრაფში (მინიმუმ Ruby on Rails).

5. Backend-Web Developers in NTC IT IT IT Rosa მუშაობა ძირითადად მეტი ABF განვითარების და ასამბლეის სისტემა, რომელიც გამოიყენება ჩვენი ძირითადი პროდუქციის შექმნისთვის - Linux OS- ისა და პროდუქტების ხაზის დისტრიბუციის შესახებ. აქედან გამომდინარე, ეს იქნება დიდი უპირატესობა, თუ ამ ვაკანსიის კანდიდატი იცნობს Linux- ს და ამ სისტემის შეკრებებით. ეს არ იქნება შემდგომი გაცნობა ABF- ს ვირტუალიზაციის სხვა ტექნოლოგიებთან (კერძოდ, LXC), კონფიგურაციის მართვის სისტემებში (მაგალითად, მშვენივრად) და კოდის შენახვის სისტემები (პირველ რიგში GIT).

სერგეი ყაზანცევი, უფროსი დეველოპერი, "კასპერის ლაბორატორია"

1. BeCasend დეველოპერები პასუხისმგებელია ვებ სერვერებზე შესრულებული კოდით.

ამდენად, backend დეველოპერები უნდა გვესმოდეს არა მხოლოდ პროგრამირების ენებზე, არამედ სერვერის არქიტექტურა, მონაცემთა ბაზები და ქსელური ურთიერთქმედების პროტოკოლები.

2. დეველოპერი უნდა იცოდეს მინიმუმ ერთი მაღალი დონის პროგრამირების ენა, ეფექტური ვებ-სერვერისა და ვებ-სერვერის ჩარჩო.

პოპულარული ჩანართები შეიძლება იყოს:

  • C # + ASP.NET + IIS;
  • Java + Spring MVC + Apache Tomcat;
  • Ruby on რელსები + nginx;
  • Python + Django + Apache;
  • PHP + Apache;
  • ... ან მათი კომბინაციები.

ბევრი კომპანიის ვებ სერვისი აგებულია Microsoft ტექნოლოგიებისა და პლატფორმების საფუძველზე. NET, მაგრამ Ruby on Rails, Perl, PHP ასევე გამოიყენება.

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

  • საგზაო მონიტორინგი: Fiddler, Wireshark;
  • პროფილაქტიკური შესრულება, მეხსიერება და მონაცემთა ბაზის მოთხოვნები;
  • სწრაფი ძებნა ჟურნალები: GREP.

3. სავალდებულო უნარ-ჩვევები, რომლებიც მუშაობენ მონაცემთა ბაზებთან, შეტყობინებათა რიგებისა და დიდი პროექტების შესახებ გავრცელებული ქეშირების გამოყენებისათვის.

4. საჭირო გამოცდილება შეიძლება დამოკიდებული იყოს იმ თანამდებობაზე, რომელიც განმცხადებელს აცხადებს:

  • 1 წელი - უმცროსი ვებ დეველოპერი;
  • 2-5 წელი - ვებ დეველოპერი;
  • 5-7 + - უფროსი / წამყვანი დეველოპერი.

5. Kaspersky Lab- ის კონკრეტული მოთხოვნები შეიძლება მიეკუთვნოს კრიპტოგრაფიის ცოდნას, პოტენციურ საფრთხეს ვებ-პროგრამებსა და მათ თავიდან აცილების გზებს.

ილია კუტუკოვი, უფროსი პროგრამისტი, სპეციალისტი ვებ საინჟინრო პარალელურად

1. ჩვენ პარალელურად ვართ ღიად ორი ვაკანსია ასეთი სპეციალისტებისთვის - წამყვანი ვებ Backend შემქმნელი (http://hh.ru/vacancy/12586616?query\u003dparallels) და წამყვანი ვებ ბაჩენდის შემქმნელი და არქიტექტორი (Python) (HTTP: HTTP: HTTP: //hh.ru/vacancy/12599030?query\u003dparlels), ისე, რომ ჩვენ ვიცით ზუსტად ის, რაც ჩვენ გვინდა ასეთი სპეციალისტები. მიხვდა, რომ ჩვენთან მყოფი ადამიანი ფლობს აუცილებელ პროგრამულ ენებსა და ტექნოლოგიებს, რომლებიც საკმარისად მუშაობენ. გარდა კოდირების უნარ-ჩვევებისა და საერთო erudition- ის შემოწმების გარდა, ჩვენ ვაძლევთ გამოცდას არქიტექტორს - ტექსტი, რომელიც თავისუფლად არის დაწერილი და შეგნებულად შეუსაბამო TK სისტემის განვითარებაზე. გარდა ამისა, სთხოვეთ კანდიდატს, გაერკვია, რომ არ არის ნათელი, რა დამატებითი კითხვები აქვს და როგორ ხედავს სისტემის ძირითად კომპონენტებს, მონაცემთა სქემას, როგორ შეიცვლება ყველაფერი დატვირთვის, მონაცემების მოცულობის გაზრდა, და სად შეიძლება უგულებელყოფილიყო.

2. მთავარი ინსტრუმენტარიუმის - IDE (მე განვმარტო, რომ გუნდში ვართ Pycharm), დეველოპერის გარემო, ანუ პროგრამების კომპლექტი, რაც შეიძლება მაქსიმალურად შევსება საბრძოლო სერვერების შევსებაზე, მაგრამ იმავე დრო, რომ სწრაფად გაიგოს, რა ხდება, VCS, სათავე სკრიპტები. საინტერესო, შედარებით ახალი იარაღები, ტექნოლოგიები და მიდგომები, მინდა აღვნიშნო "რეაქტიული" მიდგომა (AKKA, RX *, Apache Storm და ა.შ.), რომელიც მოითხოვს შეტყობინებების, მოვლენების დონის დეველოპერს და მათი მოდიფიკაცია. ისევე, როგორც მიკროსვლეობის არქიტექტურები, რომლებიც კარგად არიან მათი ინტერფეისის აღწერილობის ენებზე (მეურნეობა, ავტო, პროტოფფები, JSON Schema), რომელიც საშუალებას იძლევა კონტრაქტების შექმნა, რისთვისაც მონაცემები გაცვლიან.

3. ჩვენთვის განათლება ფუნდამენტურ როლს არ თამაშობს.

5. ჩვენ გვაქვს backend დეველოპერები მუშაობა ასეთ ფუნქციონირებას, როგორც პარალელები MyAccount, წვდომის პორტალი, Desktop Portal, Solutions, როგორიცაა პარალელები წვდომა (Solution დისტანციური წვდომა) და პარალელები Desktop for Mac (დაიწყოს MACS სხვადასხვა ოპერაციული სისტემების და მათი განაცხადების გარეშე გადატვირთეთ), სხვადასხვა ინფრასტრუქტურული გადაწყვეტილებებით. აქედან გამომდინარე, ჩვენ გვაქვს ასეთი სპეციფიკა, როგორც ნულოვანი downtime და კარგად, თუ ადამიანი არა მხოლოდ ესმის, თუ რა ცვლილებები უნდა გაკეთდეს, არამედ როგორ უნდა გავაკეთოთ, არ მოქმედებს მომხმარებლებს.

კონსტანტინე კიჩინსკი, სტრატეგიული ტექნოლოგიების ექსპერტი, Microsoft Russia

1. Backend ვებ დეველოპერისთვის საჭირო ცოდნა და უნარები:

  • ქსელის არქიტექტურა, ოქმები, საკომუნიკაციო არხები.
  • პროექტთან დაკავშირებული ტექნოლოგიური დასტა (მაგალითად, C #,. NET, ASP.NET ან JavaScript / Typescript + Nodejs) + კონტროლი ოპერაციული სისტემის მიხედვით (მაგალითად, Windows / Azure + PowerShell).
  • განლაგების და ტესტირების ავტომატიზაცია (მათ შორის დატვირთვა).
  • გონიერი cloud თვისებები ძირითადი პროვაიდერები (Microsoft Azure, AWS), მათ შორის სერვისების Scalitability- ს.
  • SDL და ზოგადი უსაფრთხოების საკითხებში (მათ შორის დაშიფვრის და ავტორიზაციის).

2. ინსტრუმენტები: ვიზუალური სტუდია, Git + დანარჩენი დამოკიდებულია პროცესებზე და ტექნოლოგიურ სტეკზე.

3. განათლება: პროფილი (ეს) + პრაქტიკული გამოცდილება, მისასალმებელი ხარისხის ცოდნა კონკრეტულ სფეროებში (ასევე უსაფრთხოება ან საიტის შეცდომის შემწყნარებლობის უზრუნველყოფა).

4. გამოცდილება: რეალურ პროექტებში პრაქტიკული გამოცდილება, მათ შორის OS პროექტებში მონაწილეობის ჩათვლით.

5. კონკრეტული მოთხოვნები: Azure.

ალექსანდრე მთა, დირექტორი საინფორმაციო ტექნოლოგიები Mail.ru ჯგუფი.

1. პირველ რიგში, მან უნდა იცოდეს backend - მისი ძირითადი პროგრამირების ენა, მონაცემთა ბაზა, სერვერის განაცხადების ორგანიზების პრინციპები. გარდა ამისა, მას სჭირდება ცოდნა ვებ-გვერდზე: HTTP პროტოკოლის მოწყობილობა, CSS შესაძლებლობები, მინიმუმ HTML და JavaScript- ის ელემენტარული საკუთრება. და ბოლოს, ის უნდა იყოს კარგი დეველოპერი - შეძლებს საკუთარი და სხვის კოდის გამართვას, კლასიკური ალგორითმების სწორად გამოიყენოს შესაბამისი მონაცემთა სტრუქტურები.

2. მთავარი ინსტრუმენტი, რა თქმა უნდა, პროგრამირების ენაა. ენა განსაზღვრავს Toolkit- ის მეორე დონეს: სტანდარტული ამ ჩარჩო ენისა და ბიბლიოთეკის კომპლექტი. შემდეგ გადავიდეთ მონაცემთა ბაზები: ყველაზე ხშირად MySQL ან PostgreSQL - და NosQL შენახვის ობიექტები, როგორიცაა tarantool ან redis.

3. არ არსებობს ფორმალური მოთხოვნები დიპლომის დროს მოწყობილობის დროს Mail.ru Group- ში. გაცილებით მნიშვნელოვანია რეალური უნარებისა და პროექტებისათვის, რომელშიც მონაწილეობდა. Mail.RU ჯგუფს აქვს ორი დიდი საგანმანათლებლო პროექტი: Technopark საფუძველზე MSTU Bauman და Technosphere საფუძველზე IMC MSU, რომლის მიზანია მოსწავლეებს სპეციფიკური უნარები ვებ განვითარების სფეროში.

4. არ არსებობს ფორმალური მოთხოვნები, მაგრამ ზოგადად შეიძლება ითქვას, რომ დეველოპერი სრულიად დამოუკიდებელი ხდება ორი ან სამი წლის გამოცდილების შემდეგ "მეორე ნომერზე".

5. Backend განვითარება ტრადიციულად ჩვენი კომპანიის გულში იყო. Backend დეველოპერი უნდა იყოს ნამდვილად საუკეთესო ყველაფერი - ჭკვიანი, შემოქმედებითი, პასუხისმგებელი, სისუფთავე, ისევე როგორც კარგი გუნდის მოთამაშე და სასურველია ერთად lug გარშემო ხელმძღვანელი. ტექნიკური თვალსაზრისით, ჩვენი სპეციფიკა არის ის, რომ Backend- ის უმრავლესობა დაწერილია C ++- ზე, და არ ჩაირთვება ენები - მაღალი დატვირთვები აიძულა.

ალექსანდრე ნედზელსკი, ISOFT ვებ სტუდია ხელმძღვანელი

1. თუ ჩვენ ვსაუბრობთ ბაჩენის დეველოპერის გარკვეული კოლექტიური იმიჯის შესახებ, მაშინ:

  • გააზრება oop, დიზაინის თარგები, ძირითადი ალგორითმების ცოდნა და მონაცემთა სტრუქტურების ცოდნა;
  • ერთ-ერთი პროგრამირების ენაზე (ან რამდენიმე);
  • გამოცდილება DBMS, ცოდნა SQL;
  • რელაციური მონაცემთა ბაზების შემუშავების პრინციპები;
  • გამოცდილება პოპულარული ჩარჩოებით;
  • გამოცდილება ვერსიების მართვის სისტემებთან;
  • hTML, CSS, JavaScript- ის ძირითადი ცოდნა;
  • ტესტის შექმნის უნარი.

2. "Notepad" და ხელმძღვანელი მხრებზე. და თუ სერიოზულად, ნებისმიერი IDE / რედაქტორი და ტესტი ფართობი. როგორც წესი, ინსტრუმენტები შერჩეულია დამოკიდებულია პარამეტრების / ამოცანების / შესაძლებლობების შესახებ.

3. მკაცრად მაღალი ტექნიკური.

4. დასრულებული და სამუშაო კომერციული პროექტების არსებობა.

5. ჩვენ ვამზადებთ ვებ-პროგრამებს, საიტებსა და მომსახურებას ძირითადად PHP / MySQL- ზე. ამავდროულად, ჩვენ ვიყენებთ YII / Symfony და 1C-Bitrix სტანდარტული გადაწყვეტილებების მისაღებად. აქედან გამომდინარე, ჩვენთვის მნიშვნელოვანია შესაბამისი გამოცდილება და ცოდნა.

ედუარდ გურსკი, ტექნიკური ლიდერობის შიდა განვითარების გუნდში, JetBrains

1. Backend-Web Developer არის, ფაქტობრივად, პირი, რომელიც ვითარდება სერვერზე ლოგიკა და იცის, თუ რომელი კონტექსტი შესრულდება - ვებ პროგრამების კონტექსტში. იმ შემთხვევაში, თუ Backend-Web აპლიკაციები ხორციელდება Java- ში და უმეტეს შემთხვევაში, სინამდვილეში, იგივე სპეციალისტი ვრცელდება ყველა იმავე მოთხოვნას ცოდნისა და უნარ-ჩვევებისთვის, როგორც ჩვეულებრივი ჯავა დეველოპერი: ენის ცოდნა, სამუშაოებისა და მოწყობილობების გაგება ჯავის SDK- ის ძირითადი ბიბლიოთეკის კომპონენტები და ა.შ. თუმცა, გამოცდილება ასევე დაემატება სხვადასხვა ვებ-ჩარჩოებს (დამოკიდებულების ინექციის, MVC და ა.შ.), განაცხადის შესრულების შეფასებისა და გაუმჯობესების შესაძლებლობას. აუცილებელია გაითვალისწინოს და გაიგოს, თუ რამდენად სწრაფად მომხმარებელი აპლიკაცია მიიღებს სერვერის კოდის შედეგს, ისევე როგორც უსაფრთხოდ და რაციონალურად, სხვა სერვერის ფუნქციონირება არის მომხმარებლის ბრაუზერის მეშვეობით.

ხშირად backend ვებ აპლიკაცია მოითხოვს ინტეგრაციას მესამე მხარის მომსახურებას ან მისი ფუნქციონირების ექსპორტის გარე API- ს. დეველოპერი უნდა გვესმოდეს, თუ როგორ ხორციელდება ასეთი ამოცანები, რომელთა განხორციელებაც გამოიყენება ოქმებისა და მექანიზმების შესახებ.

მიუხედავად იმისა, რომ ასეთი ადამიანი ძირითადად ჩართულია განაცხადის სერვერის ლოგიკის განვითარებაში, აპლიკაციის კლიენტის ნაწილების გამოყენებით ან პროტოტიპის აუცილებლობაზე. აქედან გამომდინარე, მას შემდეგ, რაც საჭიროა TCP / IP პროტოკოლის ფუნქციონირება, HTTP პროტოკოლები, ბრაუზერის ურთიერთქმედების პრინციპები ვებ აპლიკაციით, ძირითადი ცოდნა განლაგების შესახებ, CSS სტილის, JavaScript შესაძლებლობების შესახებ.

2. ჩვეულებრივ, ეს იდეა განვითარებისთვის. თქვენ ასევე უნდა გამოვიყენოთ პროფესორი პროდუქტიულობის ამოცანების მოსაგვარებლად, გადაჭარბებული რესურსების მოხმარება და ა.შ. ჩვენს გუნდში, ჩვენ ვიყენებთ Intellij იდეას.

3. კანდიდატების განათლების დონის ამომრჩეველს არ ვაფასებთ რაიმე ფორმალურ მოთხოვნებს. უფრო მნიშვნელოვანი გამოცდილება, გაგება და დაზვერვა, და, რა თქმა უნდა, მოტივაცია კაცი.

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

5. მიესალმა განაცხადების განვითარების გამოცდილება ჯეჟირაბების პროდუქტების გამოყენებით. ჩვენ ყველანი ვართ კომპანიაში ვცდილობთ გამოიყენოთ ჩვენი პროდუქცია, რადგან ისინი კომფორტულია და იმიტომ, რომ ჩვენ კიდევ უფრო მოსახერხებელია!

ასევე ცოტა ხნის წინ, ჩვენ პრაქტიკაში ვატარებთ ვებ-პროგრამების განვითარებას Kotlin ენაზე. ეს იძლევა რიგი მნიშვნელოვან უპირატესობას, ასევე ქმნის წერილობით კოდს უფრო სასიამოვნო. კანდიდატის სურვილი მიესალმება ვებ-პროგრამების განხორციელების ახალ ენებს და ახალ მიდგომებს.

დიმიტრი ოვიჩინნიკოვი, ვებ დეველოპერი
ნატალია Beetle, Recruiter Sooo "თამაშის Stream" მინსკის ცენტრში განვითარების Wargaming

1. Backend Developer- ს ვებ-გვერდის ღრმა გაგება მოითხოვს: HTTP მოთხოვნის ფორმირებისგან ბრაუზერის მხრიდან სხვადასხვა ოქმების გამოყენებით Intersperson Communications- ის განხორციელებამდე. Wargaming Wargaming არ არის მხოლოდ "პირადი ანგარიში" მოთამაშე, არამედ ბევრი მომსახურება უზრუნველყოფს ერთიანი ავტორიზაციის, რეგისტრაციის, მონაწილეობის რეფერალური პროგრამის და ა.შ.

ასევე მნიშვნელოვანია საინჟინრო აზროვნება. კომბინირებული დიდი ტექნიკური ჰორიზონტთან ერთად, ეს საშუალებას იძლევა ეფექტური გადაწყვეტილებების შეთავაზება.

და, რა თქმა უნდა, დარწმუნდით, რომ დაწერა ხარისხის კოდი. პროგრამის სახე არის მისი კოდექსი. ძირითადი არქიტექტურებისა და თანამედროვე პროგრამირების ნიმუშების ცოდნა ხშირად სავალდებულოა კომპლექსურ პროექტზე დიდი გუნდში მუშაობისას.

2. გამოყენებულია ტექნოლოგიის დასტისას, საკმაოდ სტანდარტულია: ვებ-გვერდის ძირითადი მასივი ვითარდება Python- ზე, ზოგიერთ სერვისს PHP- ში და სხვები, კრიტიკული დაჩქარება და პარალელური გამოთვლითი, Erlang- ზე. MySQL გამოიყენება შენახვისთვის, ქეში - memcached. RabbitMQ შერჩეული როგორც საბურავი შეტყობინებები კომპანია. ფარგლებში - Django და Twisted. თუ ჩვენ ვსაუბრობთ წინა ნაწილში, მაშინ ეს არის საერთო ხერხემალი / ხაზგასმული / jQuery bundle.

რაც შეეხება განვითარების ინსტრუმენტებს, wargaming ჩვენ ვივარაუდოთ პოზიცია "რა არის უკეთესი დეველოპერი". ვინმეს იყენებს თანამედროვე IDE, ვინმეს უფრო კომფორტული გრძნობს Vim ან Emacs. არ აქვს მნიშვნელობა, რომელ ინსტრუმენტებს, რომელთა საშუალებითაც ჩვენ ვასრულებთ ჩვენს საქმიანობას, თუ შედეგი არის მოსახერხებელი და სასარგებლო მომსახურება, რომელიც ყოველდღიურად მილიონობით მოთამაშეს ყოველდღიურად ატარებს.

3. ჩვენ არ გვაქვს ფორმალური მოთხოვნები განათლების დონისთვის. პროფილი (ტექნიკური, მათემატიკური) განათლება იქნება პლუს, რადგან ეს გულისხმობს კანდიდატის ფუნდამენტურ თეორიულ მომზადებას, მაგრამ ნაკლებად სავარაუდოა, რომ გადამწყვეტი ფაქტორი გახდეს სამუშაოს მიღებისას. ჩვენ გვესმის, რომ ცოდნა მათემატიკის სფეროში, oop, კლასიკური ალგორითმები და მონაცემთა სტრუქტურების მიღება დამოუკიდებლად. უპირატესობა ექვემდებარება კანდიდატებს გამოცდილებით. ასევე, კანდიდატის უნარი, რათა გადაჭრას საინჟინრო ამოცანები და საინჟინრო გადაწყვეტილებების მიღება და არა მხოლოდ ჩაწერეთ კოდი.

4. სამუშაო გამოცდილების მოთხოვნები ვაკანსიაზეა დამოკიდებული. თუ ჩვენ ვიწვევთ ახალგაზრდა სპეციალისტს, პირველ რიგში, ჩვენ შევხედავთ მის "სახლის პროექტებს" და უნივერსიტეტის განვითარებას. ჩვენ უნდა ვიყოთ დარწმუნებული, რომ ადამიანი მოვიდა არ შანსი, ეს იყო შეგნებული არჩევანი, რომელიც შეიძლება დადასტურდეს რეალური მაგალითები მინიმუმ მცირე, მაგრამ დასრულებული პროექტები. როდესაც საქმე გამოცდილი სპეციალისტი - მოთხოვნები უფრო კონკრეტულია. ჩვენ მნიშვნელოვანია განიცდიან მრავალ სფეროში: მონაცემთა ბაზები, Linux, ვებ სერვერი (Apache, Nginx), ქეშირების სისტემების ცოდნა და გაგება, შეტყობინებების სისტემები (კურდღელი) და გამოცდილება ფარგლებში (Django, Twist). მაღალი დატვირთვის პროექტების ოპტიმიზაციის გამოცდილება ძალიან სასარგებლო იქნება და საშუალებას მოგცემთ სწრაფად შეუერთდეს განვითარების პროცესს და მუშაობას მაქსიმალური ეფექტურობით თქვენთვის და გუნდისთვის. წამყვანი ექსპერტებისა და ექსპერტებისათვის, ზემოთ აღნიშნული, ფართო ტექნიკური ჰორიზონტი და გამოცდილება სხვადასხვა ტექნოლოგიური დასტის მრავალფეროვნებით.

5. Wargaming.net სამყაროს მოთამაშეების დიდი რაოდენობით ვებ ინფრასტრუქტურის მხარდაჭერა გულისხმობს მაღალი ტვირთის მუშაობას და განაცხადის არქიტექტურაში მუშაობის უნარი დიდი რაოდენობა ითხოვს.

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

მომზადებული Igor Strompel

SuperJob.ru პორტალი კვლევის ცენტრი განსაკუთრებით "სისტემური ადმინისტრატორის" შესწავლილი დამსაქმებელთა შეთავაზებებზე. Backend- ვებ დეველოპერის პოზიციით, სპეციალური მოთხოვნები ჯერ არ არის განსაზღვრული, ისინი ძირითადად მსგავსია ის ფაქტი, რომ ისინი პროგრამისტებისთვის არიან წარმოდგენილი.

ჯავის პროგრამისტი

ის
ტელეკომუნიკაცია
მრეწველობა
წარმოება
Შენობა
Უძრავი ქონების მართვა
მომსახურება B2V. გაყიდვების B2B გაყიდვების B2C.
ᲛᲔ. 65 000 – 80 000 54 000 – 71 000 50 000 – 67 000 60 000 – 75 000 50 000 – 65 000 50 000 – 64 000
50 000 – 64 000 42 000 – 57 000 40 000 – 53 000 45 000 – 60 000 40 000 – 52 000 40 000 – 51 000
II. 80 000 – 90 000 71 000 – 87 000 67 000 – 85 000 75 000 – 90 000 65 000 – 83 000 64 000 – 87 000
64 000 – 72 000 57 000 – 70 000 53 000 – 68 000 60 000 – 70 000 52 000 – 66 000 51 000 – 70 000
III 90 000 – 150 000 87 000 – 125 000 85 000 – 115 000 90 000 – 130 000 83 000 – 120 000 87 000 – 125 000
72 000 – 120 000 70 000 – 100 000 68 000 – 92 000 70 000 – 100 000 66 000 – 96 000 70 000 – 100 000
Iv. 150 000 – 200 000 125 000 – 150 000 115 000 – 150 000 130 000 – 180 000 120 000 – 170 000 125 000 – 160 000
120 000 – 160 000 100 000 – 120 000 92 000 – 120 000 100 000 – 145 000 96 000 – 140 000 100 000 – 130 000
Cf. 125 000 110 000 100 000 115 000 115 000 110 000
100 000 88 000 80 000 92 000 90 000 90 000

უცნაური ხელფასის ხაზები - შუა MSK, თუნდაც - პეტერბურგში

Ხელფასის დიაპაზონი პროფესიული უნარების მოთხოვნები და სურვილები
დიაპაზონი I.
  • არასრული უმაღლესი განათლება (ტექნიკური / IT)
  • შესანიშნავი ცოდნა HTML, CSS, Java, XML
  • ობიექტზე ორიენტირებული პროგრამირების პრინციპების ცოდნა
  • მონაცემთა ბაზის განვითარების თეორიული საფუძვლები
  • ინგლისური ენის ცოდნა ტექნიკური დოკუმენტაციის წაკითხვისას
  • ჯავის პროგრამირების გამოცდილება ექვსი თვის განმავლობაში
Range II.
  • გამოცდილება ვებ სერვერებთან და განაცხადის სერვერებთან
  • Java პროგრამირების გამოცდილება 1 წლიდან
Range III
  • უმაღლესი განათლება (ტექნიკური / IT)
  • ცოდნა დიზაინი შაბლონები Java და J2ee
  • გამოცდილება სპეციალური საშუალებების გამოყენებით (hibernate, გაზაფხული, struts და ა.შ.)
  • გამოცდილება განვითარების გუნდში
  • გამოცდილება ვერსიების კონტროლის სისტემებთან
  • გამოცდილება DBMS (MS SQL Server ან Oracle)
  • Java პროგრამირების გამოცდილება 2 წლის განმავლობაში
დიაპაზონი IV.
  • საკვალიფიკაციო სერთიფიკატების არსებობა
  • გამოცდილება დიზაინი ინფორმაციული სისტემები და პროექტის დოკუმენტაციის მომზადება
  • გამოცდილება ინტეგრაციის გადაწყვეტილებებით (IBM WebSphere, Oracle Fusion Midware)
  • გამოცდილება მრავალ დონის აპლიკაციების განვითარებაში
  • Java პროგრამირების გამოცდილება 3 წლის განმავლობაში
შესაძლო სურვილები:
  • ინგლისური ენის ცოდნა სასადილოში ან თავისუფალ დონეზე
  • უნარები მექანიკური დეველოპერის ჯგუფი

ვალერი ჩერნტეოვა მომზადდა, სუდირებული ანალიტიკოსი ლიდერი


კონტაქტში

  • Გადაცემა

ეს სია გამოჩნდა პირადი მემორანდუმის თემებზე, რომლებმაც კოლეგებთან და მეგობრებთან ერთად განვიხილეთ და, რომელშიც მინდოდა უფრო ღრმა გაგება ...

მე არ ვარ დიდი შეყვარებული ინტერვიუებზე ტექნიკური კითხვების დასმისთვის: ჩემთვის უკეთესია, რომ ამდენი კანდიდატი (ან კანდიდატი) იყოს რეალურ კოდზე, ნამდვილი პრობლემა - და მთელი დღე, რათა ჩაერთონ წყვილი პროგრამირების, სასურველია მონაცვლეობით დანარჩენი გუნდი. მაგრამ მე მჯერა, რომ ზოგიერთი ტექნიკური კითხვები შეიძლება იყოს კარგი ამოსავალი წერტილი მომხიბლავი და სასიამოვნო საუბრის დასაწყისში და ერთმანეთის ღრმა.

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

Გაფრთხილება

კითხვების უმრავლესობა ღიაა, ზოგი უბრალოდ არ არის მარჯვენა ან მცდარი პასუხი. პირიქით, ისინი უნდა იყვნენ საუბრის დაწყების წერტილი, რომელიც იდეაში უნდა გამოიჩინოს ადამიანის შესაძლებლობები, ვიდრე უბრალო პასუხი. პირადად, მე ზოგადად ამჯობინებ კითხვებს, პასუხებს, რომელთანაც მე არ ვიცი.

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

ეს პროექტი შეიქმნა "Frontender- ის მუშაობისთვის გასაუბრებისათვის" კითხვების ნიმუშის მიხედვით, @DArcyclarke- დან.

სად არის პასუხი?

ადრე თუ გვიან მე შეავსებს სტატიას შესაბამისი პასუხებით. მადლობელი იქნებოდა რაიმე დახმარებისთვის!

კითხვები დიზაინის თარგების შესახებ:

რატომ არის გლობალური ობიექტები და სტატიები ბოროტი? შეგიძლიათ აჩვენოთ მაგალითზე კოდი?

გვითხარით კონტროლის ინვერსიის შესახებ და როგორ აუმჯობესებს ორგანიზაციის კოდს.

DEMERS- ის კანონი (მინიმალური ცნობიერების პრინციპი) აცხადებს, რომ თითოეული პროგრამის მოდულს უნდა ჰქონდეს შეზღუდული ცოდნა სხვა მოდულების შესახებ და უნდა შეასრულოს მხოლოდ პირდაპირი "მეგობრები" (ზოგჯერ ის ჩამოყალიბებულია, როგორც "არ ისაუბრეთ უცნობებს"). შეგიძლიათ დაწეროთ კოდი, რომელიც არღვევს ამ პრინციპს? რატომ არის მისი ცუდი ორგანიზაცია და როგორ უნდა გაასწორონ?

აქტიური ჩანაწერი არის დიზაინის თარგი, რომელიც ხელს უწყობს ფუნქციების განხორციელებას, როგორიცაა ჩასმა, განახლება და წაშლა და თვისებები, რომლებიც შეესაბამება მონაცემთა ბაზაში ზოგიერთი ძირითადი მაგიდის სვეტებს. ფიქრობთ და გამოცდილება, რა შეზღუდვები და პრობლემები აქვს ამ თარგი?

DATA-MAPPER არის დიზაინის თარგი, რომელიც ხელს უწყობს კონვერტორების ფენის გამოყენებას (რუკების) მოძრავი მონაცემებისა და მონაცემთა ბაზას შორის, ამავდროულად, ერთმანეთისგან დამოუკიდებლობის შენარჩუნებას და კონვერტორს. ამ თარგისგან განსხვავებით, აქტიურ-ჩანაწერში, ობიექტებს პირდაპირ მოიცავს ოპერაციებს მონაცემთა ბაზაში და მონაცემთა ბაზაში არსებული მონაცემების შენახვაზე. გაქვთ აზრი ამ შაბლონებზე? რა შემთხვევებში მირჩევნია ერთი მათგანი სხვა?

რატომ ხდება null ხშირად აღინიშნება "მილიარდი დოლარის შეცდომა"? გსურთ განიხილონ ტექნიკის თავიდან ასაცილებლად, როგორიცაა NULL ობიექტის თარგი წარმოდგენილია GOF წიგნში, ან სურვილისამებრ ტიპებზე?

რატომ არის კომპოზიცია ხშირად უკეთესია, ვიდრე მემკვიდრეობა?

რა არის უსაფრთხოების დონე (ანტიკორუფციული ფენა)?

Singleton არის დიზაინის თარგი, რომელიც ქმნის ერთი ინსტანციის კლასს ერთი ობიექტი. ჩაწერეთ უფლება ერთი (ძაფის უსაფრთხო Singleton) არც ისე ადვილია. სცადეთ?

კლიენტის მხარის ზეგავლენის გარეშე განხორციელების შეცვლის უნარი ეწოდება აბსტრაქტულ მონაცემთა პრეზენტაციას (მონაცემთა აბსტრაქცია). დაწერეთ მაგალითი, რომელიც არღვევს ამ ქონებას, შემდეგ შეასწორეთ.

დაწერეთ კოდი, რომელიც არღვევს დონ "T- ს პრინციპს (მშრალი). შემდეგ შეასწორეთ.

როგორ გაუმკლავდეთ ჯოჯოხეთის დამოკიდებულებას (დამოკიდებულების ჯოჯოხეთი)?

რატომ არის Goto - არის ეს ბოროტი?

საიმედოობის პრინციპი არის კოდექსის ორგანიზაციის ზოგადი წესი, რომელიც რეკომენდაციას იძლევა "კონსერვატიული არის ის, რომ თქვენ გააგზავნით და ლიბერალურ რა მიიღებთ". ხშირად ჩამოყალიბებულია "ტოლერანტული მკითხველი და ფრთხილი მწერალი". მინდა განვიხილოთ ამ პრინციპის მნიშვნელობა?

დისკუსიის გამიჯვნა - დიზაინის პრინციპი გამოყოფისთვის Კომპიუტერული პროგრამა ინდივიდუალური ტერიტორიებისთვის, რომელთაგან თითოეული პასუხისმგებელია მისი ამოცანისთვის. არსებობს მრავალი სხვადასხვა მექანიზმი პასუხისმგებლობების (ობიექტების, ფუნქციების, მოდულების ან თარგების გამოყენებისათვის, როგორიცაა MVC და IT). გსურთ განვიხილოთ ეს თემა?

კოდექსის ორგანიზაციის (კოდექსის დიზაინი) კითხვები:

ხშირად ამბობენ, რომ ობიექტზე ორიენტირებული დიზაინის ერთ-ერთი უმნიშვნელოვანესი ამოცანა (და მთლიანად კოდექსის ორგანიზაცია) არის ძლიერი clutch და სისუსტე. Რას ნიშნავს? რატომ არიან ისინი ძალიან მნიშვნელოვანი და როგორ მივაღწიოთ მათ?

რატომ უმეტეს ენებზე მასივის ინდექსი იწყება ნულიდან?

როგორ იმოქმედებს ტესტები და TDD ორგანიზაციის კოდი?

დაწერეთ კოდი ფრაგმენტი, რომელიც არღვევს დონ "T- ის პრინციპს (მშრალი). ახსენით, რატომ აქვს ცუდი ორგანიზაცია და სწორია.

რა განსხვავებაა clutch და connectedness?

რა არის refactoring?

კოდექსში კომენტარს აკეთებენ სასარგებლო? ვინმე ამბობს, რომ ისინი თავიდან უნდა იქნას აცილებული, და იდეალურად მათ არ სჭირდებათ. Მეთანხმები?

რა განსხვავებაა ორგანიზაციის კოდს და არქიტექტურას შორის?

რატომ არის TDD ტესტები ადრე კოდი?

C ++ მხარს უჭერს მრავალჯერადი მემკვიდრეობას და ჯავა საშუალებას აძლევს კლასს მრავალი ინტერფეისების განხორციელება. რა გავლენას ახდენს ამ ფონდების გამოყენება ორთოგონალში? არსებობს რაიმე განსხვავება ეფექტი სხვადასხვა სამკურნალო და მრავალი ინტერფეისები? არსებობს განსხვავება დელეგაციისა და მემკვიდრეობის გამოყენებით? [ეს არის წიგნი "პრაგმატული პროგრამისტი" ენდრიუ ხანტა და დეფვიდა თომას]

ინახება სუბიექტის ტერიტორიის ლოგიკის შენახვის შენახვის შენახვა შენახული პროცედურების სფეროში.

თქვენი აზრით, რატომ არის ობიექტზე ორიენტირებული ორგანიზაცია ამდენი წლის განმავლობაში ბაზარზე?

თუ თქვენს კოდს აქვს ცუდი ორგანიზაცია, როგორ გესმის ეს?

კითხვები პროგრამირების ენებზე:

უთხარი ო სამი მთავარი თქვენი საყვარელი პროგრამირების ენის უარყოფითი მხარეები.

რატომ ზრდის ინტერესი ფუნქციურ პროგრამირებას?

რა არის დახურვა და რა არის სასარგებლო? რა არის საერთო დახურვა და კლასები?

როდის არის მოსახერხებელი გამოყენება Generics?

რა არის მაღალი შეკვეთა ფუნქციები? რა არის საჭირო ისინი? დაწერეთ ასეთი ფუნქცია ნებისმიერ ენაზე.

დაწერეთ ციკლი, შემდეგ კი კონვერუსურ ფუნქციას გადააქვთ მხოლოდ იმუნური სტრუქტურების გამოყენებით (I.E. ცვლადების გარეშე). აღწერეთ იგი.

რას ნიშნავს ენა, როდესაც ენა ითვალისწინებს ფუნქციებს, როგორც პირველი კლასის ობიექტები?

აჩვენეთ მაგალითი, როდესაც ანონიმური ფუნქცია სასარგებლო იქნება.

რატომ გჭირდებათ სახელთა სივრცე? მოდი ალტერნატივად.

გვითხარით ჯავისა და C # თავსებადობის შესახებ (ან ორი სხვა თვითნებური ენების შერჩევა).

რატომ ბევრი დეველოპერები არ მოსწონთ ჯავას?

რა ხდის კარგი ენა კარგი და ცუდი ენა - ცუდი?

დაწერეთ ორი ფუნქცია, ერთი რეფეროვანი გამჭვირვალე და სხვა რეფეროვანი გაუმჭვირვალე. განვიხილოთ ისინი.

რა არის დასტის და რა არის bunch? რა არის დასტის overflow?

რატომ არის მნიშვნელოვანი, რომ ფუნქციები პირველი კლასის ობიექტებია ენაზე?

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

რატომ არ ხორციელდება ზოგიერთი პროგრამირების ენაზე გამონაკლისი? რა არის უპირატესობები და უარყოფითი მხარეები?

თუ კატა არის ცხოველი, მაშინ მართალია, რომ takecare - ეს არის takecare. ?

რატომ ჯავას, C # და მრავალი სხვა ენების დიზაინერები არ არიან ინტერფეისის ნაწილი?

ბოლო წლებში, ბევრი ხმაური გარშემო Node.js. რა არის თქვენი აზრი გამოყენების შესახებ backstand ენაზე, რომელიც თავდაპირველად ჩაფიქრებული იყო ბრაუზერში?

წარმოიდგინეთ, რომ თქვენ გაქვთ დროის მანქანა და არსებობს შესაძლებლობა, რომ დაბრუნდეს გარკვეულ მომენტში ჯავის ისტორიაში (C #, Python, წასვლა ან რაღაც) და ისაუბრეთ JDK- ის ზოგიერთ შემქმნელებთან. რას ცდილობენ დაარწმუნოთ ისინი? წაშლა კონტროლირებადი გამონაკლისი? დაამატეთ პრიმიტიული ტიპები? მრავალრიცხოვანი მემკვიდრეობა?

ვებ განვითარების კითხვები:

რატომ არის მშობლიური cookies და მესამე მხარის cookies დამუშავებული ასე განსხვავებულად?

როგორ შეძლებდით ვებ სერვისების API- ს ვერსიების ნუმერაციას?

თვალსაზრისით backend, არის რაიმე უარყოფითი მხარეები ან დაბრკოლებები დანერგვა ერთი გვერდი განაცხადების?

რატომ, როგორც წესი, ვცდილობთ იმდენად, რომ სამსახური იყო მოქალაქეობის არმქონე? რა არის იმდენად კარგი მოქალაქეობის არმქონე კოდში? რატომ და როდის მდგომარეობის შენახვისას (სახელმწიფო) ცუდია?

დასვენება და საპნის: რა სიტუაციებში თქვენ აირჩევთ ერთ-ერთ ამ მიდგომას და რა სხვა?

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

მონაცემთა ბაზის კითხვები:

როგორ გამოაქვეყნებთ განცხადებას ერთი მონაცემთა ბაზიდან მეორეზე, მაგალითად, MySQL- დან PostgreSQL- ში? თუ თქვენ უნდა მართოთ ასეთი პროექტი, რა პრობლემები მოელით?

რატომ არის მონაცემთა ბაზა, როგორც ასეთი განსაკუთრებული შემთხვევა? მაგალითად, რატომ SQL SELECT * მაგიდადან, სადაც ველი \u003d null არ აძლევს ჩაწერას NULL სფეროში?

მჟავა არის ატომური, თანმიმდევრულობა, იზოლაცია, გამძლეობა (ატომური, თანმიმდევრულობა, იზოლაცია, სტაბილურობა). მონაცემთა ბაზის ძრავების უმრავლესობა უზრუნველყოფს მონაცემთა ბაზაში ოპერაციების ამ ოთხი თვისებას. რა იცით ამის შესახებ? გინდა უფრო მეტი გითხრათ?

როგორ გაუმკლავდეთ DB Schema- ს გადაცემას, რაც, მაგალითად, DB სქემაში ცვლილებების ავტომატიზირებულია, რადგან განაცხადს შეიმუშავებს ვერსია ვერსია?

როგორ განახორციელოთ ზარმაცი დატვირთვა? როდის არის სასარგებლო? რა არის წყალქვეშა ქვები?

ე.წ. "N + 1 პრობლემა" ხდება, როდესაც კოდექსი უნდა ჩაიტვირთოს ბავშვის ელემენტები "მშობელთა შთამომავლების" ურთიერთობიდან ზარმაცი ჩატვირთვისას და, შესაბამისად, გააგზავნეთ თხოვნა მშობლის ჩანაწერისთვის და შემდეგ თითოეული შვილობილი კომპანიისათვის . როგორ გადაწყდეს პრობლემა?

როგორ იხილავთ ყველაზე ღირებულებას განაცხადში?

თქვენი აზრით, ყოველთვის აუცილებელია მონაცემთა ბაზის ნორმალიზება? როდის არის სასურველია გამოიყენოს დენორმალიზებული მონაცემთა ბაზა?

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

კითხვები NOSQL- ზე:

რა არის თანმიმდევრულობა საბოლოო ჯამში (საბოლოო თანმიმდევრულობა)?

რაც შეეხება Cap Theorem, მისცეს CP, AP და CA სისტემების მაგალითებს.

როგორ ახსოვთ Nosql- ში ინტერესების დახასიათება?

როგორ ხდება nosql პრობლემის Scalability?

ამ შემთხვევაში, თქვენ გირჩევნიათ დოკუმენტი ორიენტირებული DBMS, როგორიცაა Mongodb ნაცვლად Relational DBMS, როგორიცაა MySQL ან Postgresql?

კითხვები კოდი:

რატომ არის ფილიალების განხორციელება მერკური ან git უფრო ადვილია, ვიდრე SVN- ში?

რა არის დადებითი ვერსიების კონტროლის სისტემები, როგორიცაა GIT, შედარებით ცენტრალიზებული VCS, როგორიცაა SVN?

შეგიძლიათ აღწეროთ სამუშაოს Github ნაკადი და gitflow?

რა არის rebase (ნაბიჯი)?

რატომ არის შერწყმა უფრო ადვილად განახორციელოს მერკური ან git ვიდრე SVN და CVS?

კითხვები პარალელიზმის შესახებ:

რატომ გჭირდებათ პარალელიზმი? ახსენით.

რატომ არის ასე ძნელი შესამოწმებლად მრავალრიცხოვანი / პარალელური კოდი?

რა არის რბოლის სტატუსი? დაწერე მაგალითი თვითნებურ ენაზე.

რა არის ორმხრივი ბლოკირება? შეგიძლიათ დაწეროთ რამდენიმე კოდი, რომელიც განიცდის ორმხრივ ბლოკებს?

რა არის რესურსი შიმშილი (პროცესის შიმშილი)? საჭიროების შემთხვევაში, მოდით განვიხილოთ მისი განმარტება.

რა არის დაბლოკვის სინქრონიზაციის ალგორითმი მოლოდინების გარეშე (ლოდინი თავისუფალი ალგორითმი)?

კითხვები განაწილებული სისტემების შესახებ:

როგორ შეამოწმოთ განაწილებული სისტემა?

ამ შემთხვევაში, თქვენ იყენებთ ასინქრონული კომუნიკაციას ორ სისტემას შორის?

რა არის ძირითადი წყალქვეშა ქვები დისტანციური გამოწვევა პროცედურების?

თუ თქვენ შექმნით გადანაწილებულ სისტემას Scalability და საიმედოობისთვის, რა სხვადასხვა პრობლემებს შეიძლება მოხდეს დახურულ და უსაფრთხო ქსელურ გარემოში და გეოგრაფიულად განაწილებული და საჯარო სისტემაში?

როგორ უზრუნველვყოთ ვებ-აპლიკაციის შეცდომის ტოლერანტობა? Desktop განაცხადის?

როგორ გაუმკლავდეს ჩავარდნებს განაწილებულ სისტემებში?

მოდით ვისაუბროთ სხვადასხვა მიდგომებზე ქსელის კავშირის დარღვევის შემდეგ სამუშაო მოცულობის (შერიგების) აღდგენისთვის.

რა არის misconceptions შესახებ განაწილებული გამოთვლითი?

მოთხოვნის / პასუხების გამოყენებისას და როდის გამოაქვეყნებს / გამოაქვეყნებს?

დავუშვათ, რომ სისტემა, რომელთანაც თქვენ მუშაობთ გარიგების მხარდასაჭერად. როგორ განახორციელოთ ეს ნულიდან?

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

რა არის მოქნილობა (სისწრაფე)?

როგორ იმოქმედებთ მემკვიდრეობის კოდით?

ვთქვათ, მე ვარ თქვენი პროექტის მენეჯერი და არა პროგრამირების ექსპერტი. შეეცადეთ ახსნას, რა არის მემკვიდრეობის კოდი და რატომ უნდა იზრუნოს კოდექსის ხარისხზე.

მე ვარ თქვენი კომპანიის აღმასრულებელი დირექტორი. ახსენით კანბანი და დაარწმუნე იგი ინვესტირებას.

რა არის ძირითადი განსხვავება მოქნილი განვითარების მეთოდოლოგიასა და კასკადის მოდელზე?

როგორც ჯგუფის ლიდერი, როგორ გადაჭრით პრობლემა ძალიან ბევრი შეხვედრების?

როგორ გაუმკლავდე პროექტს, რომელიც ხორციელდება ძლიერი დაგვიანებით?

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

გვითხარით, რა გადაწყვეტილებებს მიიღებ, თუ თქვენი კომპანიის ტექნიკური დირექტორი იყო.

არის თუ არა პროგრამის მენეჯერებისგან რაიმე სარგებელი?

გააკეთეთ სამუშაო გრაფიკი, მოქნილი გრაფიკის გამოყენებით (ანუ დამონტაჟებული სამუშაო დროის გარეშე) და საპროცენტო პოლიტიკას "სჭირდება".

როგორ გაუმკლავდე ძალიან დიდ სწავლებას და დაარწმუნებს დეველოპერებს, რომ არ დატოვონ გუნდი ხელფასის გაზრდის გარეშე? რა კარგია, რომ კომპანიამ მათ დარჩენა?

რა არის სამი ძირითადი ხარისხის თქვენი ღირებულება კოლეგებს გარდა პროგრამირების?

რა სამი ძირითადი რამ პროგრამირების უნდა იცოდეს ჰუმანიტარულ მეცნიერებათა, თქვენი აზრით?

წარმოიდგინეთ, რომ კომპანია გთავაზობთ ერთ თვეში და ბიუჯეტს, რათა გააუმჯობესოს თქვენი და თქვენი კოლეგების ყოველდღიური ცხოვრების ხარისხი. Რას გააკეთებდით?

კითხვები ლოგიკა და ალგორითმები:

დაწერეთ FIFO რიგი გამოყენებით მხოლოდ lifo stacks. შემდეგ შექმნას LIFO დასტის გამოყენებით მხოლოდ FIFO queues.

დაწერეთ კოდექსის ფრაგმენტი ბუფერის გადაფარვაში.

დაწერეთ ფაქტიურად ბოლომდე რეკურსია.

ნებისმიერ ენაზე, დაწერეთ პასუხი, რომელიც დაუყოვნებლივ აჩვენებს ღირებულებებს. გააუმჯობესოს იგი RPN კალკულატორს.

როგორ შეიქმნა კომუნალური დეფრაგმენტაცია?

დაწერეთ პროგრამა, რომელიც ქმნის შემთხვევითი ლაბირინთებს.

დაწერეთ მაგალითი კოდი, რომელიც ქმნის მეხსიერების გაჟონვას.

წარმოიქმნება უნიკალური შემთხვევითი რიცხვების თანმიმდევრობა.

დაწერეთ მარტივი ნაგვის შეგროვების სისტემა.

დაწერეთ მარტივი ბროკერი შეტყობინებების ნებისმიერ ენაზე.

დაწერეთ ძალიან მარტივი სერვერი. გააკეთეთ ფუნქციების გეგმა, რომელიც უნდა განხორციელდეს მომავალში.

როგორ ხარ 10 გბ ფაილი? როგორ მიდიხარ ცვლილებებს 10 tb ფაილში?

როგორ მოიძებნა დუბლიკატი ფაილების პროგრამა?

კითხვები არქიტექტურის შესახებ:

როდესაც ქეში არ არის საჭირო და ზიანს აყენებს?

რატომ არის მოვლენების ორიენტირებული არქიტექტურა scalability?

რას აკეთებს კოდი იკითხება?

რა განსხვავებაა დიზაინის (წარმოშობის დიზაინის) და ევოლუციური არქიტექტურის განვითარებაზე?

ჰორიზონტალური და ვერტიკალური სკალირება: რა განსხვავდება ისინი? როდის უნდა გამოიყენოთ ერთი რამ, და როდის არის სხვა?

როგორ უნდა ვიმუშაოთ კონტროლს უკმარისობის (წარუმატებელი) და მომხმარებლის სხდომებზე?

რა არის CQRS (ბრძანება შეკითხვის პასუხისმგებლობის სეგრეგაცია)? როგორ განსხვავდება ბრძანება-შეკითხვის გამოყოფის ძველი პრინციპიდან?

რა არის სამი დონის არქიტექტურა?

როგორ შეიმუშავებთ პროგრამული უზრუნველყოფის სისტემას scalability?

რა სტრატეგიები C10K პრობლემის მოსაგვარებლად?

როგორ შემოგთავაზებთ დეცენტრალიზებულს (I.E. ცენტრალური სერვერის გარეშე) P2P სისტემა?

რატომ არის CGI არ არის მასშტაბური?

როგორ დაიცავს თქვენს სისტემებს სავალდებულო მიმწოდებლისთვის (გამყიდველი ჩაკეტვა)?

რა არის ნაკლოვანებები დიზაინის თარგი "გამომცემელი-აბონენტის" ნაკლოვანებები?

რა მოხდა პროცესორების განვითარებაში 80-იან წლებში, რატომ არის მნიშვნელოვანი პროგრამირებისათვის?

სიცოცხლის ციკლის რა ეტაპზე უნდა განიხილოს შესრულება და როგორ?

როგორ არ არის უარის თქმის პრობლემა DOS- ის თავდასხმის გამო, მაგრამ ცუდი დიზაინის გამო, ან არქიტექტურის პრობლემის გამო?

რა არის ურთიერთობა შესრულების და scalability შორის?

როდის არის ის, რომ გამოიყენოთ ძლიერი ჩართულობა (მჭიდრო დაწყვილება)?

რა მახასიათებლებმა უნდა გამოაქვეყნონ სისტემა ღრუბელში?

არქიტექტორთა მიწის ნაკვეთის ერთიანობას? უბრალოდ აყენებს: შეუძლია კარგი დიზაინი წარმოიქმნება ყველა დეველოპერის კოლექტიური ძალისხმევით?

რა განსხვავებაა დიზაინს, არქიტექტურას, ფუნქციურობასა და ესთეტიკურ თვისებებს შორის? განვიხილოთ ეს.

კითხვები სერვისზე ორიენტირებული არქიტექტურისა და მიკროსავების შესახებ:

რატომ არ არის SOA ხანგრძლივი გარიგებები, და ნაცვლად ისინი მოწვეულნი არიან SAGA- ს?

რა განსხვავებაა SOA და Microservice- ს შორის?

მოდით ვისაუბროთ ვებ სერვისების ვერსიების შესახებ, ვერსია თავსებადობა და კრიტიკული ცვლილებები, რომლებიც უკან თავსებადობას ახდენენ.

რა განსხვავებაა ტრანზაქციისა და კომპენსაციის ოპერაციას SAGA- ში, SOA- ში?

როდის არის მიკერძოება ძალიან მიკრო?

რა არის მიკერძოობის არქიტექტურის დადებითი და უარყოფითი მხარეები?

უსაფრთხოების კითხვები:

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

რატომ ამბობთ, რომ არ უნდა შეეცადოთ თქვენი კრიპტოგრაფიის წესების გამოგონება ან შექმნა?

რა არის ორი ფაქტორი ავთენტიფიკაცია? როგორ ახორციელებთ მას არსებული ვებ-აპლიკაციაში?

თუ არ გაუმკლავდეთ ჟურნალებს ყურადღებით, ყოველთვის არის რისკი, რომ კონფიდენციალური ინფორმაცია მოვა, მათ შორის პაროლები. როგორ ასეთ პრობლემას?

დაწერეთ კოდი კოდის SQL ინექციის ქვეშ და გამოსწორებას.

როგორ შემიძლია მოვძებნოთ SQL- ინექციის მოწყვლადობა სტატიკური კოდექსის ანალიზის მეთოდით? მე არ ველოდები, რომ თქვენ დაწერე მზა ალგორითმი, რადგან ეს ძალიან დიდია, მაგრამ განვიხილოთ ზოგადი მიდგომა.

რა იცით ჯვარედინი სკრიპტის შესახებ? თუ არ გახსოვთ, ვნახოთ მისი აღწერა ინტერნეტში და ისაუბრეთ ამის შესახებ.

რას იციან ჯვარედინი შეკითხვის ყალბი? თუ არ გახსოვთ, ვნახოთ მისი აღწერა ინტერნეტში და ისაუბრეთ ამის შესახებ.

როგორ მუშაობს https მუშაობა?

რა არის თავდასხმა "კაცი შუა"? და რატომ https ეხმარება დაიცვას წინააღმდეგ?

როგორ შეგიძლიათ თავიდან აიცილოთ მომხმარებლის სხდომის ქურდობა? სავარაუდოდ, გახსოვთ, რა ქურდობა არის სესია ან ნამცხვარი, წინააღმდეგ შემთხვევაში ჩვენ ვკითხულობთ ვიკიპედიის გვერდს ამ თემასთან ერთად.

ზოგადი საკითხები:

რატომ არის მნიშვნელოვანი ფუნქციონირება პროგრამირების? როდის უნდა გამოვიყენო ფუნქციური პროგრამირების ენა?

როგორ კომპანიები, როგორიცაა Microsoft, Google, Opera და Mozilla მიიღოთ მათი ბრაუზერები?

რატომ არის გახსნის TCP Socket დათვი დიდი ოვერჰედის?

რა არის მნიშვნელოვანი encapsulation?

რა არის რეალურ დროში სისტემა და როგორ განსხვავდება ჩვეულებრივი სისტემისგან?

რა არის კავშირი რეალურ დროში პროგრამირების ენებსა და მეხსიერების გამოყოფას შორის pile?

უცვლელი არის ობიექტის შექმნის დროს ფასეულობების ერთჯერადი პარამეტრების პრაქტიკა და ეს ღირებულებები მაშინ არასოდეს შეცვლილა. როგორ უთმობს უსაფრთხო კოდი?

ცვალებადი და უცვლელი ღირებულებების დადებითი და უარყოფითი მხარეები.

რა არის ობიექტი- relational gap (ობიექტი-რელაციური impedance mismatch)?

რა პრინციპები ვრცელდება ქეშის ზომაზე?

რა განსხვავებაა TCP- სა და HTTP- ს შორის?

რა არის კომპრომისების შერჩევა კლიენტის მხარეს და სერვერზე?

როგორ განვითარდეს საიმედო საკომუნიკაციო პროტოკოლი არასანდოზე?

ნულოვანი მაჩვენებლის ტონი ჰოერის გამომგონებელი ერთხელ თქვა: "მე შემიძლია მოვუწოდო მას ჩემი მილიარდი დოლარის შეცდომა," იმიტომ, რომ ის მოიზიდავს "უამრავი შეცდომების, მოწყვლადობისა და სისტემური შეცდომების მოზიდვას, რაც სავარაუდოდ, ორმოცი წლის განმავლობაში მილიარდ დოლარს მიაყენებს ტანჯვას " დავუშვათ, რომ გსურთ აღმოფხვრას თქვენი პროგრამირების ენაზე ნულოვანი მითითებების გამოყენების შესაძლებლობა: როგორ გადაწყვიტეთ ასეთი ამოცანა? რა შედეგები შეიძლება ჰქონდეს მას?

ღია კითხვები:

რატომ ხალხს შეცვლის?

ახსენით თემების კონცეფცია ბებიასთან.

როგორც დეველოპერი, თქვენ ერთდროულად მინდა და გამოიყენოთ ინოვაცია და პროგნოზირებადი. როგორ შეიძლება ეს ორი მიზანი არსებობს ერთმანეთთან ერთად იგივე სტრატეგიის ფარგლებში?

რა კარგ კოდს კარგია?

ახსენით, თუ როგორ ხორციელდება ნაკადი მაუწყებლობა და როგორ ახორციელებთ მას.

დავუშვათ, რომ თქვენი კომპანია გაძლევთ ერთ კვირას სიცოცხლის გასაუმჯობესებლად თქვენთვის და თქვენი კოლეგებისთვის: როგორ იყენებთ ამ კვირას?

რა გაირკვა გასულ კვირას?

ნებისმიერ დიზაინში არის ესთეტიკური ელემენტი. კითხვა არის, ეს ესთეტიკა არის თქვენი მეგობარი ან მტერი?

დაასახელეთ ბოლო ხუთი წიგნი, რომელიც წაიკითხეთ.

როგორ განახორციელოთ უწყვეტი მიწოდების მიდგომა დიდ წარმატებულ კომპანიაში, რისთვისაც კასკადის მოდელის გადასვლის უწყვეტი მიწოდების მიდგომა არ არის ტრივიალური მისი ზომა და ბიზნეს სირთულე?

როდის აზრი აქვს საჭესთან reinvent?

მოდით ვისაუბროთ EW- ის ბორბლების გამოგონებაზე, სხვისი განვითარებისა და პრაქტიკის გამოყენების პრაქტიკაში ან საკუთარი მომსახურებისა და პროდუქტების დეველოპერების გუნდისთვის (საკუთარი საჭმლის ჭამა).

რას აკეთებ პირველად მიმდინარე სამუშაოზე?

რა არის სირთულეები წერილობით პროგრამული უზრუნველყოფა? რა რთულია პროგრამული უზრუნველყოფის მხარდასაჭერად?

გირჩევნიათ მუშაობა სრულიად ახალი პროექტების (Greenfield) ან გააგრძელეთ მიმდინარე (Brownfield)? რატომ?

რა ხდის ოპერაციულ სისტემას, როდესაც არ არსებობს ბრძანება კონკრეტული კოდის აღსრულებისათვის და გამოიყურება არაოკუპაციისთვის? მინდა დავიწყო საუბარი ინტერპრეტაციის, დემონების, ფონური სერვისების, კვლევების, მოვლენების დამუშავების შესახებ და ა.შ.

ახსენით Unicode ან გარიგებები ხუთწლიანი ბავშვის DBMS- ში.

მიეცით არგუმენტები მონოლითური არქიტექტურის სასარგებლოდ.

რას ნიშნავს "პროფესიული დეველოპერი"?

პროგრამირება არის ხელოვნება, Craft ან საინჟინრო? Თქვენი აზრი.

რატომ არის კორპორაციები უარესი დანერგვა ინოვაციები, ვიდრე Startups?

თქვენი ბოლო მიღწევა თქვენ ამაყობთ?

კითხვები კოდი ფრაგმენტები:

რა არის ამ ფუნქციის აღსრულების შედეგი JavaScript?

ფუნქცია Hookupevents () (for var i \u003d 0; მე< 3; i++) { document.getElementById("button" + i) .addEventListener("click", function() { alert(i); }); } }
რაც შეეხება ტიპებს, რომლებიც ასეთ ჯავის კოდს მისცემს და რატომ?

Arrayist. Li \u003d ახალი arraylist (); Arrayist. Lf \u003d ახალი arraylist (); თუ (li.getclass () \u003d\u003d lf.getclass ()) // აფასებს ჭეშმარიტი system.out.println ("თანაბარი");
შეგიძლიათ გამოაქვეყნოთ მეხსიერების გაჟონვა?

საჯარო კლასის დასტის (კერძო ობიექტის ელემენტები, კერძო INT ზომა \u003d 0; კერძო სტატიკური საბოლოო ind default_initial_capacity \u003d 16; საჯარო დასტის (ელემენტები \u003d ახალი ობიექტი;) საზოგადოებრივი ძალადაკარგული ბიძგი (ობიექტი ე) (ESSERECAPACITY ()) ელემენტები \u003d E;) საჯარო ობიექტის POP () (თუ ზომა \u003d\u003d 0) ჩააგდოს NEWSSTSTACKEXCECTION (); დაბრუნების ელემენტები [- ზომა];) / ** * ** * Essure ფართი მინიმუმ კიდევ ერთი ელემენტისთვის, უხეშად * გაორმაგდა ტევადობის ყოველ ჯერზე მასივი სჭირდება იზრდება. * / პირადი ბათილობის ობიექტიერება (თუ (Elements.Length \u003d\u003d ზომა) ელემენტები \u003d array.copyof (ელემენტები, 2 * ზომა + 1);))
შეგიძლიათ მოშორება შეცვალოს შეცვლა და დაწეროთ მეტი ობიექტი ორიენტირებული კოდი?

საჯარო კლასის ფორმატი (კერძო მომსახურების სამსახური; საჯარო სიმპტომები (სამსახურები;) საზოგადოებრივი სიმებიანი dothejob (სიმებიანი TheInput) (სიმებიანი რეაგირება \u003d Service.Assforpermission (); შეცვლა (რეაგირება) (საქმე "ვერ": დაბრუნება "შეცდომა"; საქმე "OK"; საქმე "OK" : დაბრუნება string.format ("% s% s", theinput, theinput); default: დაბრუნება null;))
შეგიძლიათ თუ არა ოპერატორები და დაწეროთ მეტი ობიექტი ორიენტირებული კოდი?

Public Class Theservice (Private Final FialHandler Filehandler; კერძო საბოლოო foorepository / public theservice (fialhandler fialhandler, foorepositery fooropository; (this.filehandler \u003d filehandler; Filehandler.getxmlfilefromfilename (final string executionid \u003d finalhandler.getextionidfromfilename (rewrittenurl \u003d\u003d ")) || (rewrittenurl \u003d\u003d")) (rewrittenurl \u003d\u003d "))) (rewrittenurl \u003d\u003d"))) x ); თუ (FiendFoo \u003d\u003d null) (დაბრუნების "";) დაბრუნება FurnedFoo.dothat (ფაილი);)
როგორ გავაკეთოთ ასეთი კოდექსის რეფორმირება?

ფუნქცია () (HRESULT ERROR \u003d S_OK; თუ (წარმატებას მიაღწია (ოპერაცია 1)) (თუ წარმატებას მიაღწია (IF FOURSED (OPENEY 3))) (თუ (წარმატებას მიაღწია) სხვა (ERROR \u003d operation4failed;)) (შეცდომა \u003d ოპერაცია 3failed;))) სხვაგან (შეცდომა \u003d ოპერაცია

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

Bec-End Developer არის უხილავი წინა მოიერიშე.

თანამედროვე საიტები, ვებ აპლიკაციები და თამაშები ძალიან რთული გახდა, ამიტომ სპეციალისტების მთელი გუნდი მუშაობს მათზე. საჭიროა სრული, ლამაზი, ფუნქციური და მოსახერხებელი საიტის შესაქმნელად, საჭიროა წინა ბოლო და ბოლო დეველოპერების თანმიმდევრული მუშაობა. ეს არის სწრაფი სამუშაო, რათა შეიქმნას ვებსაიტის ან ვებ აპლიკაცია და ადვილია მისი სერვისისთვის.

საუბრისას ფიგურალურად, უკან-დასასრულს განვითარება არის მანქანის ძრავის შექმნა, ხოლო წინა დასასრული განვითარებაა მანქანების კონტროლის დიზაინისა და ფუნქციების შექმნა. Back End Developer მუშაობს მჭიდრო კავშირი წინა ბოლომდე დეველოპერთან, მასზე ინფორმაციის მიღებას და შედეგად დაბრუნების შედეგი.

ძირითადი ინსტრუმენტები უკან End Developer - სერვერის პროგრამირების ენები: როგორიცაა PHP, Python, Ruby, Java, Perl, კვანძის JS (პროგრამული პლატფორმა). გარდა ამისა, Node JS, სასარგებლოა ვისწავლოთ ექსპრესი (ბიბლიოთეკა ურთიერთქმედება Node JS პლატფორმა სერვერზე) და Mongo DB (მონაცემთა ბაზის მოპოვების და შენახვის ინფორმაცია).

როცა დამატებითი თანხები სიმფონია, კოდექსიგირი, YII, Zend Framework, Kohana და ა.შ. გამოიყენება MySQL / SQLite- ის გამოყენებით მონაცემების შენახვისთვის.

მახასიათებლები პროფესიის

თანამედროვე დეველოპერები არა მხოლოდ პროგრამების კოდს. ასე რომ, 10-15 წლის წინ მუშაობდა პროგრამისტები. ამჟამად, ასეთი ტერმინი შეუსაბამოა, რადგან სამუშაოში ხშირად შესაძლებელია კოდის გარეშე, უბრალოდ, მზა ნაწარმზე დამაკავშირებელი კონფიგურაცია. და პროგრამისტებმა ახლა "დეველოპერი" ან "ინჟინერი" უწოდებენ.

IT- სმენის განვითარებით, პროექტები უფრო რთული ხდება და დიზაინერი, რომელიც შეიძლება შეგროვდეს მზა გადაწყვეტილებების გამოყენებით (ჩარჩოების) თითქმის ნებისმიერი ამოცანებისათვის.

ამდენად, დეველოპერის პრო-დასასრული ფუნქციონირება ასე გამოიყურება:

  • სამსახურის არქიტექტურის დიზაინი;
  • შექმნის საიტის ძირითადი;
  • პლატფორმის განვითარება და ძირითადი ფუნქციური;
  • კოდექსის არქიტექტურასთან მუშაობა;
  • განაცხადების შემუშავება, რომლებიც მხარს უჭერენ ინტერფეისი და უსაფრთხოებას;
  • სერვერების მდგომარეობის კონტროლი (საბრძოლო, ტესტი და მუშაკი);
  • ვერსიების, მონაცემთა ბაზების, უწყვეტი ინტეგრაციის კონტროლი.

დადებითი და პროფესია

მაღალი გადამხდელი და მოთხოვნილი პროფესია.

სამუშაო ადგილი

საიტის განვითარების კომპანიები, ვებ-პროგრამები, მობილური აპლიკაციები.

მნიშვნელოვანი თვისებები

  • ანალიტიკური გონება
  • ლოგიკური აზროვნება
  • ინიციატივა
  • გეგმის დაგეგმვის უნარი
  • გუნდური მუშაობის უნარი
  • აზროვნების მოქნილობა
  • პასუხისმგებლობა, perseverance, მიზანშეწონილობა
  • ფოკუსირება შედეგი და ხარისხი
  • სურვილი მუდმივად შეისწავლოს ახალი და მისი გამოყენება თავის საქმიანობაში

პროფესიული ცოდნა და უნარები

ცოდნა მინიმუმ ერთი პროგრამირების ენა: Go, C, C ++, Perl, Python, PHP, Ruby, Java.

  • სწრაფი, ლამაზი და სწორი კოდის დაწერის უნარი;
  • პოპულარული ვებ ფენინგის ცოდნა (Django, Flask, Spring);
  • უნარი დიზაინის მონაცემთა ბაზები და ოპტიმიზაცია მოთხოვნები;
  • თანამედროვე პროგრამირების პარადიგმების ცოდნა;
  • დიზაინის ნიმუშების ცოდნა;
  • ვებ სერვისების გაგება, ინტერფეისი;
  • ინგლისური ტექნიკური დოკუმენტაციის წაკითხვა.

სად ვისწავლოთ უკან დაბრუნების დეველოპერი

მატარებლები (პირადად, მოსკოვში). საერთაშორისო საგანმანათლებლო დაწესებულება სპეციალობით კომპიუტერულ განათლებაში. 1999 წლიდან მუშაობს. 42 ფილიალი 16 ქვეყანაში. ყველაზე დიდი ავტორიზებული სასწავლო ცენტრი Microsoft, Cisco, Autodesk. სტუდენტები მიიღებენ საერთაშორისო სერთიფიკატებს და საერთაშორისო დიპლომს. მთავარი მიზანი არის ყველა კურსდამთავრებული დასაქმება.

Უმაღლესი განათლება:

იმისათვის, რომ გახდეს ნამდვილი პროფესიონალი უკან დაბრუნების სფეროში, აუცილებელია ძირითადი პროფილის განათლება, რომელიც შეიძლება მიღებულ იქნას შემდეგ უნივერსიტეტებში:

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

თანამედროვე დამსაქმებლები, როგორც წესი, არ დააკისრონ ფორმალური მოთხოვნები Უმაღლესი განათლება კანდიდატები ოფისში. მათთვის, ყველაზე მნიშვნელოვანი გამოცდილება, დაზვერვა, სპეციალისტის მოტივაცია.

Warry გადახდა (რამდენი უკან ბოლოს დეველოპერი მიიღებს)

ხელფასი 09/16/2019

რუსეთი 40000-100000 ♥

მოსკოვი 80000-300000 ₽

კიბეების კარიერა და პერსპექტივები

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

დეპარტამენტების შიგნით ტრანსფორმაციები ზოგჯერ განსხვავებულად განსხვავდება. ვინმე უბრალოდ იცნობს ნებისმიერ კომპანიაში ნებისმიერი კარიერის ცვლილებას, რომელიც პოსტების პოსტზე Prism- ის მეშვეობით. ვიღაც არ მიიჩნევს, რომ შესაძლებელი გახდეს აქტივობის ფარგლების შეცვლა, მაშინაც კი, თუ ეს არის ამჟამინდელი მიმდებარე ტერიტორიაზე. მესამე, პრინციპში, ჩვენ დარწმუნებულნი ვართ, რომ დეპარტამენტის დეპარტამენტის გარდამავალი ნიშნავს იმას, რომ ადამიანი "თევზის, არც ხორცის პოზიციას იღებს და ნაკლებად სავარაუდოა, რომ რაღაცის მიღწევა.



ამავდროულად, ზოგიერთი დამსაქმებელი მიესალმება ამ ყველაფერს და განიხილავს რაღაცას, როგორიც არის burnout - ადამიანი შეიცვლება ყურადღების ცენტრში, შეიცვლება დეპარტამენტის ან დეპარტამენტის, მაგრამ არ შეცვლის მუშაობა მთლიანად.


ჩემი სახელია კოსტია და ვმუშაობ QIWI- ში თითქმის 4 წლის განმავლობაში. დღეს მე გეტყვით, თუ რამდენად წარმატებით გადავიდა Frontend განვითარების Backend.

წარმტოვეტი

QIWI- ში, 2014 წლის ბოლომდე დავიწყე iOS- ის პროგრამების დეველოპერი, და პრინციპში, რამდენიმე წლის განმავლობაში იყო ჩართული QIWI საფულეების განვითარებაში. ამავდროულად, ვერ ვიტყვი, რომ ეს იყო მოსაწყენი - ამოცანები საკმაოდ განსხვავებული იყო და იმავე განაცხადში: ჩვენ მოვახერხეთ საფულე ინტეგრაციის სხვა მომსახურებით, შურისძიების შეცდომები, ანიმაციის გამკაცრდა. გარდა ამისა, Apple Watch- ის განაცხადის შესაქმნელად მოწინავე გამოცდილება იყო. შემდეგ მან გააფართოვა ცოტა აქცენტი და მუშაობდა კი iOS განაცხადის "სინდისის".



და მაშინ, მაშინ დავიწყე გადაადგილება ნელა შევიდა უკან. მოქნილი მეთოდოლოგიის თვალსაზრისით, ეს კი მოსახერხებელია - მე გადავედი, პირველ სპრინტს შეეძლო გარკვეული სახის ბაკენდას ამოცანები და მეორე, განახორციელოს API- ის ინტეგრაცია, რომელიც მე დავწერე.


მაგრამ backend, იმ დროს იყო ძალიან ცოტა დეველოპერები და ძალიან hefty boadot, ასე რომ საბოლოოდ მე მაინც გადავიდა backend მთლიანად. ახლა მე ვაკეთებ ახლა არის კლასიკური ამოცანები ბარგის - მე ვწერ კოდს ჩვენი microservice, Chiny Bugi, მე ჩართული refactoring, მე გააზრებული kotlin. კომპანია "QIWI ინვესტორის" ახალი პროდუქტის მუშაობის შესაძლებლობაა.


სხვათა შორის, არ შემიძლია ვთქვა, რომ ამ ორი წლის განმავლობაში აღმოჩნდა, რომ მე ვიყავი ფეხით წინ, მე აშკარად მივხვდი, რომ იქ იყო იქ, სადაც უნდა განვითარდეს. მაგალითად, მე ვხედავ, რა ხდება მობილური განვითარების გუნდში ახლა და მე მესმის, რომ იქ დარჩებდი, გავაგრძელებდი ბიჭებთან ერთად.


ასე რომ, აქ იყო გამარჯვებული სიტუაცია - მინდოდა გუნდისა და პროდუქტის დასახმარებლად (უპირატესობა არ იყო მხარდაჭერილი) და ახალი ცოდნის მიღება. Timlids მიხვდა ყველაფერი და ნება მომეცით წასვლა გარეშე საჩივარი, და ასევე პროდუქცია.


გარდა ამისა, ცოდნა მინდოდა დივერსიფიკაცია არ უნდა დაერთოს ერთი პლატფორმა (Android მე არ მომწონს ცოტა, მაგრამ Apple მაინც აძლევს პოზიციას). ისე, იყო სურვილი იმ შემთხვევაში, თუ რა უნდა მიიღოს და გააკეთოს საკუთარი თავისთვის (და წინა და მხარდაჭერა), თუ რაიმე სახის მაგარი იდეა მოულოდნელად გამოჩნდება. ჯერჯერობით, ეს არ იყო სასარგებლო, თუმცა.

Back


რა თქმა უნდა, პირველი პრობლემა, რომელთანაც თქვენ გვხვდება ასეთი გარდამავალი, არის ხარვეზები მატჩში. ჩემს შემთხვევაში, ეს იყო მონაცემთა ბაზებთან მუშაობის ზოგიერთი subtleties, მაგრამ ის დაეხმარა, როგორც თვითმმართველობის განათლებისა და გუნდის უნარი - ბიჭები პასუხისმგებლობას და ყოველთვის მზად არიან დაეხმარონ და ახსნას რაღაც დეტალურად. QIWI- ში, პრინციპში, ნებისმიერ ეტაპზე სწავლისას, ყველაფერი კარგად არის, თუ არა უმცროსი სამუშაოების დაწყებისას, სულ მცირე, ეს არის ის, თუ როგორ უნდა გადაწყვიტოს და შეცვალოს სფეროს რამდენიმე წლის შემდეგ.


არავინ გააღიზიანა, რომ პირველად მე აშკარად ვმუშაობდი იმდენად ეფექტურად, რადგან ბევრად აუცილებელი იყო შესვლისთვის (მაგრამ გრძელვადიან გუნდში გუნდი ჯერ კიდევ გამარჯვებულია).


რა თქმა უნდა, მე მქონდა პატარა გამოცდილება სხვადასხვა სფეროებში - მობილური თამაშები და ვებ, მაგრამ ეს ყველაფერი იყო, საკმაოდ, ცდილობს იგრძნოს საკუთარი, ვიდრე stinging პრაქტიკული სერიოზული გამოცდილება.

შთაბეჭდილებები backend შემდეგ frontend

არ მუშაობს UI. Საერთოდ. ადრე, მე მქონდა მოკვლა დრო, რათა შეცდომების შეცდომები UI, ახლა არ არსებობს. ასეთი პოზიციის Cons - საბოლოო მომხმარებელი ვერ ხედავს შედეგებს ჩემი მუშაობის, რადგან ეს იყო წინა. მე შევეცადე, რათა დადგინდეს, თუ რა არის რთული - მხარდაჭერა ან წინა, და მიხვდა, რომ (პირადად ჩემთვის) მძიმე ყოველთვის მუშაობდა multithreading და ქსელის დასტის. და აქ აღარ არის ისეთი მნიშვნელოვანი - თქვენ ხართ წინა ან უკან. პირველ რიგში, მე უბრალოდ შევხვდი ასეთ ამოცანებს პირველად, მომზადების გარეშე, და backend, ნებისმიერი გამოცდილებით.


შესაძლებელია გამოცდილების მიღება და რაიმე მაგარი არეალით, იქნება სურვილი და წინაპირობა, აქ არის პრაქტიკა - რაღაც (და კარგად გააკეთე), და რომ ის უსაფრთხოდ და მარტივად მუშაობდა. და ამისთვის ბანედი არ არის იმდენად კრიტიკული ყოფნა ან არარსებობის გამოცდილება წინა. თუ განვითარება ითვალისწინებს ყველა პატარა რამ, აყალიბებს კუთხის შემთხვევაში და მთლიანად ესმის, თუ როგორ გამოიყენებს მისი API, მაშინ ის ყველაფერს გააკეთებს, როგორც ეს უნდა.


ადვილია ჩემთვის აღმოჩენა შესაძლო პრობლემები მხოლოდ იმიტომ, რომ მე ვიცი ჩვენი მობილური აპლიკაციების განხორციელების თვისებები. მაგრამ ეს არ არის გარკვეული სახის superposableness - ეს არის კომპლექტი ცოდნა, რომ ნებისმიერი სხვა beckened, რომელიც ხშირად მუშაობს ფრონტზე.

რომ საბოლოო ჯამში

Backend-Development გახდა კიდევ ერთი კარგი გამოცდილება ჩემთვის - მე ვისწავლე დაწერა კოდი და revw, ვფიქრობ მეტი არქიტექტურა. ეს რეალურად საინტერესოა.


მაგრამ ამავე დროს, ცდილობს ცოცხალი, რომ წინა ის არის, რომ უკან, მე არ ვამბობ, რომ იმ შემთხვევაში, რომ backend დაუყოვნებლივ აირჩიოს კარიერის დასაწყისში. ჯერ კიდევ მნიშვნელოვანია ჩემთვის, რომ დაინახოს და გაიგოს, თუ როგორ ჩემი პროდუქტი აღიქვამს მომხმარებლებს. ერთად backend, ეს ყველაფერი საკმაოდ ghostly.


სავარაუდოდ, არჩევის სფეროს ახლა, მე წასვლა gamedev ან ვებ წინ. ვებ ჯერ კიდევ რჩება კარგი პლატფორმა ახალი პროდუქტების გაშვებისთვის და ამავე დროს, საშინელი და რთული იყო გასაგები. ყველა ამ გაკვეთილები სპაგეტის კოდექსიდან და Callback-Hell შორს დარჩა, საბედნიეროდ.

Frontend არის განვითარება მომხმარებლის ინტერფეისი და ფუნქციონირება, რომელიც მუშაობს კლიენტის მხარეს ვებგვერდზე ან აპლიკაციაში. ამ ტიპის განვითარება შეიძლება მიეკუთვნოს ყველაფერს, რაც მომხმარებელს ხედავს ვებ-გვერდის გახსნას. Frontend დეველოპერი თანამშრომლობს დიზაინერებს, პროგრამისტებს და UX ანალიტიკოსებს, რათა შეიქმნას მოსახერხებელი და მოთხოვნილი პროდუქტი.

ნათლად გვესმოდეს, თუ რა არის Frontend-Development არის, გახსენით გვერდი ნებისმიერი საიტი - თქვენ ნახავთ ინტერფეისი თქვენს წინაშე. მარჯვენა ღილაკით, შეგიძლიათ იხილოთ ამ გვერდის კოდი ბრაუზერში.

ეს კოდი არის მაგალითი Frontend დეველოპერი, იგი გადმოწერილია მომხმარებლის ბრაუზერში, და ხედავთ მას ჩემი თვალით. გვერდი კოდი აღწერს ყველაფერს ხედავთ საკუთარ თავს: ფერები, განლაგება, შრიფტები, გრაფიკული ელემენტების მდებარეობა და ასე შემდეგ.

Frontend- ის განვითარება მოიცავს:

  • HTML (ჰიპერტექსტის მარკირების ენა) - დოკუმენტის მარკირების ენა, რომელთანაც გვერდი სტრუქტურა ჩამოყალიბებულია: სათაურები, პუნქტები, სიები და ა.შ.
  • CSS (კასკადური სტილის ფურცლები) - ენა აღწერა და სტილიზაცია გარე ხედი დოკუმენტი. მადლობა CSS კოდი, თქვენი ბრაუზერი ესმის, თუ როგორ უნდა აჩვენოს ელემენტები. CSS განსაზღვრავს ფერები და შრიფტის პარამეტრებს, განსაზღვრავს, თუ როგორ განისაზღვრება სხვადასხვა საიტის ბლოკები და ასე შემდეგ. იგი ასევე საშუალებას გაძლევთ გამომავალი იგივე დოკუმენტი სხვადასხვა სტილის, მაგალითად, ბეჭდვისთვის (ჩვეულებრივი ან ბრაილის შრიფტი), გამომავალი ეკრანზე ან კითხულობს ხმას;
  • JavaScript. - ეს არის ენა, რომელიც შეიქმნა ვებ გვერდების აღორძინების მიზნით. მისი ამოცანაა რეაგირება მომხმარებლის ქმედებები, გაუმკლავდეს დაწკაპუნებით მაუსი, გადაადგილება კურსორი, keystrokes. მან ასევე აგზავნის მოთხოვნებს სერვერზე და იტვირთება მონაცემების გარეშე გადატვირთვის გარეშე გვერდზე, საშუალებას გაძლევთ შეიყვანოთ შეტყობინებები და ბევრად უფრო.

რა არის backend-development?

Backend-Development არის კომპლექტი ტექნიკის პროგრამული უზრუნველყოფა, რომელთანაც ლოგიკა საიტი ხორციელდება. უბრალოდ ლაპარაკი, ეს არის ის, რაც იმალება მომხმარებლის თვალს ადევნებს და ხდება ბრაუზერისა და კომპიუტერის გარეთ.

მაგალითად, როდესაც შედიხართ თხოვნას საძიებო გვერდის გვერდზე და დააჭირეთ ღილაკს შესვლაFrontend მთავრდება და იწყება backend. თქვენი მოთხოვნა გადაეგზავნება სერვერს. Googlangs ან Yandexსადაც საძიებო ალგორითმები მდებარეობს. იქ არის, რომ ყველა "ჯადოსნური" ხდება. როგორც კი თქვენ ეძებდით ინფორმაციას, მონიტორზე გამოჩნდა Frontend ზონაში დაბრუნება.

და დიდი, სერვერი არის იგივე კომპიუტერი, მხოლოდ უფრო ძლიერი. იგი ინახავს მონაცემებს და პასუხობს მომხმარებლის მოთხოვნებს.

Backend არის პროცესი აერთიანებს სერვერს მომხმარებლის.

Backend დეველოპერი შეუძლია გამოიყენოს ნებისმიერი ინსტრუმენტები ხელმისაწვდომი მისი სერვერზე. მას უფლება აქვს აირჩიოს ნებისმიერი უნივერსალური პროგრამირების ენები, მაგალითად, Ruby, PHP, Python, Java.

ასევე გამოყენებული backend განვითარების გამოიყენება სხვადასხვა სისტემები მონაცემთა ბაზის მართვა:

  1. MySQL;
  2. Postgresql;
  3. Sqlite;
  4. Mongodb.

დამოკიდებულია ტიპის პროდუქტის, backend შემქმნელი მოვალეობის შეცვლა მნიშვნელოვნად შეიცვლება. ასეთ სპეციალისტს შეუძლია შექმნას და ინტეგრირება მონაცემთა ბაზების, უზრუნველყოს უსაფრთხოების, შექმნა ტექნოლოგიები. სარეზერვო ასლი და აღდგენა.

როგორ გააფართოვოს ურთიერთქმედება?

Frontend და Backend ურთიერთქმედება წრეში: Frontend აგზავნის მომხმარებლის ინფორმაციას backend, იგი დამუშავებულია და დააბრუნებს უკან, აღების ნათელი ფორმა.

როგორც წესი, ამ ტიპის ნამუშევრებში სხვადასხვა სპეციალისტები ჩართულნი არიან, მაგრამ სასურველია, რომ კოლეგებს მუშაობის პრინციპები გავიგოთ. მაგალითად, ინტერფეისის დიზაინერი მნიშვნელოვანია ზოგადი თვალსაზრისით, თუ რა არის პროექტის backet, რომელსაც იგი არის დაკავებული. ეს ხელს შეუწყობს მას ადეკვატურად ვაფასებთ რა ტექნიკური შესაძლებლობების შეიძლება იყოს საიტზე ან განაცხადში.

არსებობს რამდენიმე ვარიანტი ურთიერთქმედების ფრთხილად და backend:

  • HTTP მოთხოვნა პირდაპირ გაგზავნილია სერვერზე, სერვერზე ეძებს ინფორმაციას, ჩაწერეთ თარგის შევიდა და დაბრუნდება HTML- ის გვერდზე;
  • პარამეტრების გამოყენებით ინსტრუმენტები AJAX (ასინქრონული JavaScript და XML). ამ შემთხვევაში, მოთხოვნა აგზავნის JavaScript.გადმოწერილი ბრაუზერი, და პასუხი მოდის XML ან JSON ფორმატში;
  • ერთჯერადი გვერდი აპლიკაციები, რომლებიც გადმოწერეთ გვერდის განახლების გარეშე. ეს ასევე გაკეთდა aID AJAX ან Freymvorkov კუთხოვანი და ემბერი.;
  • ემბერი. ან ბიბლიოთეკა რეაგირება დახმარება გამოიყენოთ აპლიკაცია და სერვერზე და კლიენტში. Frontend და Backend ურთიერთქმედება მეშვეობით Ajax და HTML კოდი, რომელიც დამუშავებულია სერვერზე.

როგორც ვხედავთ, თანამედროვე განვითარება რთული და მრავალ დონის პროცესია, რომელიც ორ ნაწილად იყოფა: კლიენტი და სერვერი. არსენალ ფრონტზე და backend programmers არსებობს ბევრი ინსტრუმენტები, რომლის არჩევანი დამოკიდებულია ამოცანები და სირთულე პროექტის. ორივე ტიპის განვითარება მოიცავს ტექნიკურ და შემოქმედებით კომპონენტებს.

Frontend- და სარეზერვო დეველოპერების მოვალეობები, როგორც წესი, იყოფა, მაგრამ არსებობს დრო, როდესაც პროგრამისტი უნდა გადაჭრას პრობლემებს, რომლებიც წარმოიქმნება როგორც სერვერზე და კლიენტის ნაწილში. ხშირად ბაზარზე შეგიძლიათ აკმაყოფილებდეს სპეციალისტებს, რომლებიც დარწმუნებულნი არიან, როგორც გრძელვადიანი, და backend და შეუძლია დააკავშიროთ ორი სახის მუშაობა.

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