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

თითქმის ყველა დეველოპერს ადრე თუ გვიან ემუქრება გარკვეული კოდის გაშვების ან სწრაფი შემოწმების აუცილებლობა, მაგრამ ყველამ არ იცის, რომ ასეთი მარტივი ამოცანისთვის საერთოდ არ არის საჭირო მძიმე დესკტოპის IDE-ების ან აპლიკაციების შემდგენელების გაშვება. საკმარისია გამოიყენოთ ონლაინ ინსტრუმენტები, რომლებიც საშუალებას მოგცემთ გააკეთოთ ყველაფერი ბევრად უფრო სწრაფად: Ctrl+C, Ctrl+V, Run, whack - და პროგრამის გამომავალი უკვე თქვენს მოწითალო თვალებშია.

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

კოდინგი

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

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

IdeaOne

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

მათთვის, ვისაც შეყვარებული არ ჰყავს, შემქმნელებმა მოამზადეს კოდის შედგენა Brainfuck ენაზე.

JDoodle

კიდევ ერთი ონლაინ შემდგენელი, რომელიც მხარს უჭერს ბევრ ენას, მათ შორის ზოგიერთს, რომელსაც ვერ ნახავთ ბევრ სხვა ონლაინ შემდგენელში. სასიამოვნო თვისება JDoodle არის შესაძლებლობა თანამშრომლობა- უბრალოდ გაგზავნეთ ბმული თქვენს მიმდინარე სესიაზე და შექმენით შეცდომები ორმაგი სიჩქარით!

jsFiddle

სახელი არ მოგატყუოთ - jsFiddle არ არის შექმნილი მხოლოდ JavaScript-ისთვის. ეს ონლაინ წინა რედაქტორი საშუალებას გაძლევთ შეამოწმოთ JavaScript, HTML და CSS-ის ნებისმიერი კომბინაცია. რა თქმა უნდა, არსებობს სხვადასხვა ჩარჩოების მხარდაჭერა, მაგალითად, jQuery, Vue, React, TypeScript, ისევე როგორც CSS წინასწარი პროცესორები, როგორიცაა SCSS. მოხერხებულობისთვის, შეგიძლიათ აირჩიოთ გასაღების შეკვრა თქვენი საყვარელი რედაქტორიდან. მართალია, მხოლოდ იმ შემთხვევაში, თუ თქვენი საყვარელი რედაქტორი არის Vim, Emacs ან Sublime Text.

CodePad

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

მისი მთავარი უპირატესობა სიმარტივე და სიმარტივეა: საიტიც კი სწრაფად იმუშავებს ნელი ინტერნეტი. უზრუნველყოფილია სტანდარტული ჰედერების ავტომატური დაკავშირება, ასევე ინტეგრაცია Vim-თან ან Emacs-თან.

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

GCC GodBolt

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

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

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

ქვემოთ ვისაუბრებთ შემდგენელებზე, რომლებიც გაძლევენ კომპილაციის საშუალებას php კოდი C++-ში და ის შესრულებადში. ამგვარად PHP აპლიკაციებიშესრულებულია უშუალოდ პროცესორის მიერ, თარჯიმანის გვერდის ავლით.

მოდით შევამოწმოთ, არის თუ არა ყველაფერი ასე კარგად პრაქტიკაში.

როგორ მუშაობს თარჯიმანი

PHP კოდის ინტერპრეტაცია ხდება ორ ეტაპად:

  1. კოდების გარჩევა და ოპკოდების გენერაცია (Zend opcodes) - ინსტრუქციები გასაგები თარჯიმნისთვის.
  2. ოპკოდების შესრულება.

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

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

ჰიპჰოპ PHP

HipHop დაწერილია Facebook-ის დეველოპერების მიერ და არის აპლიკაცია, რომელიც:
  1. ოპტიმიზებს PHP კოდს
  2. გარდაიქმნება C++-ში
  3. წარმოქმნის თქვენი აპლიკაციიდან მრავალ ხრახნიან ვებ სერვერს, რომელიც ახორციელებს მას
  4. შედგენილია შესრულებად კოდში g++-ის გამოყენებით

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

მოდით შევამოწმოთ, როგორ უმკლავდება HipHop-ს ისეთი აპლიკაციის შედგენა, რომელიც დაწერილია ფრეიმერის გამოყენებით, როგორიცაა Wordpress.

Wordpress-ის შედგენა

HipHop-ის ინსტალაციის შემდეგ src/hphp/ საქაღალდეში მივიღებთ hphp ფაილს, რომელიც არის კომპილერი. კომპილაციის დაწყებამდე დააყენეთ გარემოს ცვლადები:

Cd .. # გადადით საქაღალდეში ჰიპჰოპის ექსპორტით HPHP_HOME=`pwd` ექსპორტი HPHP_LIB=`pwd`/bin ექსპორტი CMAKE_PREFIX_PATH=`/bin/pwd`/../

და წავიდეთ წინ!

ჩამოტვირთეთ Wordpress და გახსენით არქივი:

Wget http://wordpress.org/latest.tar.gz tar zxvf latest.tar.gz

დააკოპირეთ wp-config-sample.php wp-config.php-ზე და მიუთითეთ მონაცემთა ბაზასთან დაკავშირების პარამეტრები (ჰოსტის პარამეტრებში ჩვენ ვაზუსტებთ 127.0.0.1 და არა localhost-ს).

წარმატებული კომპილაციისთვის საჭიროა Wordpress-ის ოდნავ დაყენება:

  1. გახსენით wp-includes/js/tinymce/plugins/spellchecker/classes/SpellChecker.php და შეცვალეთ: ფუნქცია &loopback(/* args.. */) ( return func_get_args(); ) ფუნქციით &loopback(/* args.. */ ) ($ret = func_get_args(); დაბრუნება $ret; )
  2. wp-includes/query.php-ში, if (!isset($q["suppress_filters"])) ნაცვლად $q["suppress_filters"] = false; ჩადეთ $q["suppress_filters"] = true;

Wordpress მზად არის.

Hiphop-მა უნდა მიუთითოს ფაილების სია, რომლებსაც შევადგენთ - მივიღებთ და შევინახავთ files.list-ში:

იპოვე. -სახელი "*.php" > files.list

ყველაფერი მზად არის შედგენისთვის, მოდით გავაგრძელოთ:

$HPHP_HOME/src/hphp/hphp --input-list=files.list -k 1 --log=3 --force=1 --cluster-count=50

ბრძანების დასრულების შემდეგ, დროებითი საქაღალდე(კომპილაციის დასაწყისში hphp აჩვენებს თავის გზას, რაღაც „/tmp/hphp_ptRgV1“), ვიღებთ შედგენილ ვებ სერვერს. მოდით გავუშვათ (თუ რამე დევს პორტ 80-ზე, მაგალითად apache ან nginx, ჯერ უნდა გააჩეროთ პორტის გასათავისუფლებლად):

Sudo /tmp/hphp_6s0pzd/program -m სერვერი -v "Server.SourceRoot=`pwd`" -v "Server.DefaultDocument=index.php" -c $HPHP_HOME/bin/mime.hdf

ვოილა! http://localost-ზე გადასვლით ჩვენ ვნახავთ სამუშაო Wordpress ბლოგს.

შესრულება

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

როგორც ხედავთ, შედეგები შოკისმომგვრელი იყო: შედგენილი ბლოგი საშუალოდ 6-ჯერ უფრო სწრაფად მუშაობს! დაუკომპლექტებელ ვერსიაში წამში დამუშავებული მოთხოვნების საშუალო რაოდენობა არის 9, ხოლო კომპილირებული ვერსიაში 50! არ ვიცი თქვენს შესახებ, მაგრამ ამ შედეგებმა გამაოცა.

მოდით შევაჯამოთ

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

თემაზე:

თუ მოგეწონათ პოსტი, დააწკაპუნეთ Google +1-ზე - უფრო მეტ მოტივაციას მომცემს წერისთვის და უბრალოდ სიამოვნება იქნება.



რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: