Every PHP programmer is familiar with day-to-day tasks that can be tri การแปล - Every PHP programmer is familiar with day-to-day tasks that can be tri ไทย วิธีการพูด

Every PHP programmer is familiar wi

Every PHP programmer is familiar with day-to-day tasks that can be tricky or cumbersome. The code above is a great example of a common mistake where a method could unexpectedly be called on a null object, causing an error that wouldn't be caught until runtime. Another example is a complex API, where developers may have a solid understanding of its semantics but still spend time looking up mundane method names in documentation.

At Facebook scale — with thousands of engineers shipping new code twice a day — slowdowns like these are even more problematic. Before Hack, we had a simple language with a quick feedback loop — but how could we mitigate the sorts of problems described above? Could early error detection coexist with rapid iteration, all while preserving our investment in PHP? Could improved code analysis and introspection help make developers more productive with tools like auto-complete?

Traditionally, dynamically typed languages allow for rapid development but sacrifice the ability to catch errors early and introspect code quickly, particularly on larger codebases. Conversely, statically typed languages provide more of a safety net, but often at the cost of quick iteration. We believed there had to be a sweet spot.

Thus, Hack was born. We believe that it offers the best of both dynamically typed and statically typed languages, and that it will be valuable to projects of all sizes.

The Hack language
Hack has deep roots in PHP. In fact, most PHP files are already valid Hack files. We made a conscious choice not to support a handful of deprecated functions and features that were incompatible with static typing (e.g. “variable variables” and the extract() function). We have also added many new features that we believe will help make developers more productive.

Our principal addition is static typing. We have developed a system to annotate function signatures and class members with type information; our type checking algorithm (the “type checker”) infers the rest. Type checking is incremental, such that even within a single file some code can be converted to Hack while the rest remains dynamically typed. Technically speaking, Hack is a “gradually typed*”* language: dynamically typed code interoperates seamlessly with statically typed code.

Within Hack's type system, we have introduced several features such as generics, nullable types, type aliasing, and constraints on type parameters. These new language features are unobtrusive, so the code you write with Hack will still look and feel like the dynamic language to which PHP programmers are accustomed.

However, Hack adds additional features beyond static type checking, including Collections, lambda expressions, and run-time enforcement of return types and parameter types.

Collections provide a clean, type-safe alternative to PHP arrays. We designed them specifically to work well with static typing and generics. The Collections API offers many classic higher-order functions such as map() and filter() to facilitate functional programming styles.

Lambda expressions give a concise syntax for creating closures. While PHP has closures, it requires the programmer to explicitly name the variables they need to use from enclosing scopes. With Hack's lambda expressions, we automatically infer these uses, saving you needless work. Lambda expressions make it more convenient to take full advantage of the Collections API.

Run-time enforcement of return types and parameter types (including scalar types like int and string) provides safety beyond what can be checked statically while type annotations are being gradually added to a codebase. Run-time enforcement helps programmers detect and diagnose certain kinds of problems more easily, and it helps HHVM's JIT produce more efficient code by making it safe to trust type annotations for optimization purposes.

Instantaneous type checking
During development, a PHP programmer typically goes back and forth rapidly between the source code and the browser. Engineers can iterate as quickly as they need, testing and tuning an experience until it's perfect.

Traditionally, a type checker would disrupt this feedback loop as it takes time to analyze the source code. We didn't want to slow the PHP workflow, so we came up with a new approach to reconcile instantaneous feedback with type safety.

Our solution was to architect the type checker as a local server that watches the filesystem. The server keeps all information about the source code in memory and automatically updates itself when a file changes on disk. This approach has paid off: the type checker typically runs in less than 200 milliseconds and rarely takes more than a second, making it easy to integrate into the development workflow without introducing a noticeable delay.

Code migration
Hack's type safety and refactoring benefits grow the more it is used within a codebase. Understanding that it would be difficult for some code to be completely transitioned to Hack right away, it was important to us that Hack be developed such that it can coexist directly with other PHP files as it is being introduced incrementally.

The rest of the conversion process, such as adding type annotations and using new language features, can be done as appropriate for the codebase. For example, a type annotation can be added for one function but left off another function, even in the same file. If a function parameter or class member does not have an explicit type annotation, the type checker considers its type to be dynamic, and it does not check the type of that value.

Within Facebook, we found that our engineers appreciated Hack enough that they started converting the majority of their own code voluntarily. With millions of lines of code in our tree, we also wanted some form of automation, so we built and use a number of code modification tools to assist the process (which we are releasing as part of Hack).

Don't worry, your PHP is safe!
HHVM is still a PHP runtime, and we intend to keep it that way. In fact, we are working hard to reach parity with PHP-5. One of HHVM's top priorities is to run unmodified PHP-5 source code, both for the community and because we rely on third-party PHP libraries internally.

HHVM is now a runtime that supports *both* PHP and Hack, so you can start to take advantage of Hack's new features incrementally.

Have fun with Hack!
We are delighted to open-source both Hack and the tools you can use to automatically convert your codebase. This is just the first step, and we are dedicated to continuing to evolve this software to make development even easier for both our own engineers and the broader community. Hack's value is *not* limited to big projects: with type information, good error messages, and fast feedback, small codebases can reap the benefits of Hack as well.

Next month, we will also introduce the language at the Hack Developer Day on the Facebook campus in Menlo Park, and we hope to see you there in person or online.

We would love to have your feedback on our work so far, and welcome you all to participate in the HHVM and Hack community.

Acknowledgements
There are many people who have contributed to the development of Hack.

The core Hack team consists of Julien Verlaguet, Joel Beales, Eugene Letuchy, Gabriel Levi, Joel Marcey, Erik Meijer, Alok Menghrajani, Bryan O'Sullivan, Drew Paroski, James Pearce, Joel Pobar, and Joshua Van Dyke Watzman.

A special thanks goes to our early community adopters for providing valuable feedback to make the language better: James Miller, Simon Welsh, Nils Adermann, Fabien Potencier, and Alexander Mols.

Hack is written primarily in OCaml. We would like to thank the Gallium team (INRIA) for the development of the OCaml language, and the Ocsigen team (CNRS - University of Paris Diderot - INRIA) for the development of the js_of_ocaml part of Ocsigen.

And, of course, thank you to everyone else who has helped make Hack the language it is today. The list is too exhaustive for a blog post, but you know who you are.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
Every PHP programmer is familiar with day-to-day tasks that can be tricky or cumbersome. The code above is a great example of a common mistake where a method could unexpectedly be called on a null object, causing an error that wouldn't be caught until runtime. Another example is a complex API, where developers may have a solid understanding of its semantics but still spend time looking up mundane method names in documentation.At Facebook scale — with thousands of engineers shipping new code twice a day — slowdowns like these are even more problematic. Before Hack, we had a simple language with a quick feedback loop — but how could we mitigate the sorts of problems described above? Could early error detection coexist with rapid iteration, all while preserving our investment in PHP? Could improved code analysis and introspection help make developers more productive with tools like auto-complete?Traditionally, dynamically typed languages allow for rapid development but sacrifice the ability to catch errors early and introspect code quickly, particularly on larger codebases. Conversely, statically typed languages provide more of a safety net, but often at the cost of quick iteration. We believed there had to be a sweet spot.Thus, Hack was born. We believe that it offers the best of both dynamically typed and statically typed languages, and that it will be valuable to projects of all sizes.The Hack languageHack has deep roots in PHP. In fact, most PHP files are already valid Hack files. We made a conscious choice not to support a handful of deprecated functions and features that were incompatible with static typing (e.g. “variable variables” and the extract() function). We have also added many new features that we believe will help make developers more productive.Our principal addition is static typing. We have developed a system to annotate function signatures and class members with type information; our type checking algorithm (the “type checker”) infers the rest. Type checking is incremental, such that even within a single file some code can be converted to Hack while the rest remains dynamically typed. Technically speaking, Hack is a “gradually typed*”* language: dynamically typed code interoperates seamlessly with statically typed code.Within Hack's type system, we have introduced several features such as generics, nullable types, type aliasing, and constraints on type parameters. These new language features are unobtrusive, so the code you write with Hack will still look and feel like the dynamic language to which PHP programmers are accustomed.However, Hack adds additional features beyond static type checking, including Collections, lambda expressions, and run-time enforcement of return types and parameter types.Collections provide a clean, type-safe alternative to PHP arrays. We designed them specifically to work well with static typing and generics. The Collections API offers many classic higher-order functions such as map() and filter() to facilitate functional programming styles.Lambda expressions give a concise syntax for creating closures. While PHP has closures, it requires the programmer to explicitly name the variables they need to use from enclosing scopes. With Hack's lambda expressions, we automatically infer these uses, saving you needless work. Lambda expressions make it more convenient to take full advantage of the Collections API.Run-time enforcement of return types and parameter types (including scalar types like int and string) provides safety beyond what can be checked statically while type annotations are being gradually added to a codebase. Run-time enforcement helps programmers detect and diagnose certain kinds of problems more easily, and it helps HHVM's JIT produce more efficient code by making it safe to trust type annotations for optimization purposes.Instantaneous type checkingDuring development, a PHP programmer typically goes back and forth rapidly between the source code and the browser. Engineers can iterate as quickly as they need, testing and tuning an experience until it's perfect.Traditionally, a type checker would disrupt this feedback loop as it takes time to analyze the source code. We didn't want to slow the PHP workflow, so we came up with a new approach to reconcile instantaneous feedback with type safety.Our solution was to architect the type checker as a local server that watches the filesystem. The server keeps all information about the source code in memory and automatically updates itself when a file changes on disk. This approach has paid off: the type checker typically runs in less than 200 milliseconds and rarely takes more than a second, making it easy to integrate into the development workflow without introducing a noticeable delay.Code migrationHack's type safety and refactoring benefits grow the more it is used within a codebase. Understanding that it would be difficult for some code to be completely transitioned to Hack right away, it was important to us that Hack be developed such that it can coexist directly with other PHP files as it is being introduced incrementally.The rest of the conversion process, such as adding type annotations and using new language features, can be done as appropriate for the codebase. For example, a type annotation can be added for one function but left off another function, even in the same file. If a function parameter or class member does not have an explicit type annotation, the type checker considers its type to be dynamic, and it does not check the type of that value.Within Facebook, we found that our engineers appreciated Hack enough that they started converting the majority of their own code voluntarily. With millions of lines of code in our tree, we also wanted some form of automation, so we built and use a number of code modification tools to assist the process (which we are releasing as part of Hack).Don't worry, your PHP is safe!HHVM is still a PHP runtime, and we intend to keep it that way. In fact, we are working hard to reach parity with PHP-5. One of HHVM's top priorities is to run unmodified PHP-5 source code, both for the community and because we rely on third-party PHP libraries internally.HHVM is now a runtime that supports *both* PHP and Hack, so you can start to take advantage of Hack's new features incrementally.Have fun with Hack!We are delighted to open-source both Hack and the tools you can use to automatically convert your codebase. This is just the first step, and we are dedicated to continuing to evolve this software to make development even easier for both our own engineers and the broader community. Hack's value is *not* limited to big projects: with type information, good error messages, and fast feedback, small codebases can reap the benefits of Hack as well.Next month, we will also introduce the language at the Hack Developer Day on the Facebook campus in Menlo Park, and we hope to see you there in person or online.We would love to have your feedback on our work so far, and welcome you all to participate in the HHVM and Hack community.AcknowledgementsThere are many people who have contributed to the development of Hack.The core Hack team consists of Julien Verlaguet, Joel Beales, Eugene Letuchy, Gabriel Levi, Joel Marcey, Erik Meijer, Alok Menghrajani, Bryan O'Sullivan, Drew Paroski, James Pearce, Joel Pobar, and Joshua Van Dyke Watzman.
A special thanks goes to our early community adopters for providing valuable feedback to make the language better: James Miller, Simon Welsh, Nils Adermann, Fabien Potencier, and Alexander Mols.

Hack is written primarily in OCaml. We would like to thank the Gallium team (INRIA) for the development of the OCaml language, and the Ocsigen team (CNRS - University of Paris Diderot - INRIA) for the development of the js_of_ocaml part of Ocsigen.

And, of course, thank you to everyone else who has helped make Hack the language it is today. The list is too exhaustive for a blog post, but you know who you are.
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ทุกโปรแกรมเมอร์ PHP เป็นที่คุ้นเคยกับงานแบบวันต่อวันนั้นอาจเป็นเรื่องยุ่งยากหรือยุ่งยาก รหัสข้างต้นเป็นตัวอย่างที่ดีของความผิดพลาดทั่วไปที่วิธีการอาจจะเรียกว่าไม่คาดคิดบนวัตถุ null ก่อให้เกิดข้อผิดพลาดที่จะไม่ถูกจับจนรันไทม์ อีกตัวอย่างหนึ่งคือ API ที่ซับซ้อนที่นักพัฒนาอาจจะมีความเข้าใจที่มั่นคงของความหมายของมัน แต่ยังคงใช้เวลามองขึ้นชื่อวิธีโลกีย์ในเอกสาร. ที่ระดับ Facebook - มีหลายพันวิศวกรจัดส่งรหัสใหม่วันละสองครั้ง - ชะลอตัวเช่นนี้มากยิ่งขึ้น เป็นปัญหา ก่อนที่จะสับเรามีภาษาที่เรียบง่ายด้วยห่วงความคิดเห็นที่รวดเร็ว - แต่วิธีการที่เราสามารถลดประเภทของปัญหาที่อธิบายไว้ข้างต้น? การตรวจสอบข้อผิดพลาดในช่วงต้นอาจจะอยู่ร่วมกันกับการทำซ้ำอย่างรวดเร็วทั้งหมดในขณะที่การรักษาการลงทุนของเราใน PHP? การวิเคราะห์รหัสที่ดีขึ้นและความช่วยเหลือวิปัสสนาจะทำให้นักพัฒนามีประสิทธิผลมากขึ้นด้วยเครื่องมือเช่นอัตโนมัติสมบูรณ์? ตามเนื้อผ้าภาษาพิมพ์แบบไดนามิกอนุญาตให้มีการพัฒนาอย่างรวดเร็ว แต่เสียสละความสามารถในการจับข้อผิดพลาดในช่วงต้นและใคร่ครวญรหัสได้อย่างรวดเร็วโดยเฉพาะอย่างยิ่งใน codebases ขนาดใหญ่ ตรงกันข้ามภาษาพิมพ์แบบคงที่ให้มากขึ้นของความปลอดภัยสุทธิ แต่บ่อยครั้งที่ค่าใช้จ่ายของการทำซ้ำอย่างรวดเร็ว เราเชื่อว่าจะต้องมีจุดหวาน. ดังนั้นสับเกิด เราเชื่อว่าจะนำเสนอสิ่งที่ดีที่สุดของทั้งสองภาษาพิมพ์แบบไดนามิกและการพิมพ์แบบคงที่และมันจะมีคุณค่าให้กับโครงการทุกขนาด. ภาษาสับสับได้หยั่งรากลึกใน PHP ในความเป็นจริงมากที่สุดไฟล์ PHP ไฟล์ที่มีอยู่แล้วสับที่ถูกต้อง เราทำทางเลือกที่ไม่ได้ใส่ใจที่จะสนับสนุนกำมือของฟังก์ชั่นเลิกและคุณสมบัติที่เข้ากันไม่ได้กับการพิมพ์แบบคงที่ (เช่น "ตัวแปรตัวแปร" และสารสกัดจากฟังก์ชัน ()) เรายังได้เพิ่มคุณสมบัติใหม่ ๆ ที่เราเชื่อว่าจะช่วยให้นักพัฒนาที่มีประสิทธิผลมากขึ้น. นอกจากนี้หลักของเราคือการพิมพ์แบบคงที่ เราได้พัฒนาระบบที่จะอธิบายการทำงานและลายเซ็นสมาชิกระดับมีข้อมูลประเภท; ขั้นตอนวิธีการตรวจสอบชนิดของเรา ("ตรวจสอบการพิมพ์") อ้างถึงส่วนที่เหลือ การตรวจสอบชนิดเป็นที่เพิ่มขึ้นดังกล่าวว่าแม้จะอยู่ในไฟล์เดียวรหัสบางอย่างที่สามารถแปลงเป็นสับในขณะที่ส่วนที่เหลือยังคงพิมพ์แบบไดนามิก เทคนิคการพูดสับเป็น "พิมพ์ค่อยๆ *" ภาษา *: รหัสพิมพ์แบบไดนามิก interoperates ต่อเนื่องกับรหัสพิมพ์แบบคงที่. ภายในระบบการพิมพ์สับของเราได้แนะนำคุณสมบัติหลายอย่างเช่นยาประเภท nullable, aliasing ชนิดและข้อ จำกัด ในพารามิเตอร์ประเภท คุณสมบัติเหล่านี้ภาษาใหม่ที่สร้างความรำคาญดังนั้นรหัสที่คุณเขียนด้วยสับจะยังคงมองและความรู้สึกเช่นเดียวกับภาษาแบบไดนามิกที่เขียนโปรแกรม PHP จะคุ้นเคย. แต่สับเพิ่มคุณสมบัติเพิ่มเติมนอกเหนือจากการตรวจสอบชนิดคงที่รวมทั้งคอลเลกชัน, การแสดงออกแลมบ์ดาและ Run- การบังคับใช้ช่วงเวลาของการกลับมาชนิดและประเภทพารามิเตอร์. คอลเลกชันให้สะอาดทางเลือกชนิดที่ปลอดภัยที่จะ PHP อาร์เรย์ เราได้รับการออกแบบมาโดยเฉพาะเพื่อให้พวกเขาทำงานได้ดีกับการพิมพ์แบบคงที่และทั่วไป คอลเลกชัน API มีหลายคลาสสิกฟังก์ชั่นขั้นสูงเช่นแผนที่ () และตัวกรอง () เพื่ออำนวยความสะดวกรูปแบบโปรแกรมการทำงาน. แลมบ์ดาสำนวนให้รัดกุมไวยากรณ์สำหรับการสร้างการปิด ในขณะที่ PHP มีการปิดก็ต้องเขียนโปรแกรมที่จะตั้งชื่ออย่างชัดเจนตัวแปรที่พวกเขาต้องการที่จะใช้จากขอบเขตการปิดล้อม ด้วยการสับของการแสดงออกแลมบ์ดาเราจะสรุปการใช้งานเหล่านี้ช่วยประหยัดการทำงานไม่มีความจำเป็น การแสดงออกแลมบ์ดาทำให้มันสะดวกกว่าที่จะใช้ประโยชน์จากคอลเลกชัน API. บังคับใช้ในขณะทำงานประเภทผลตอบแทนและชนิดพารามิเตอร์ (รวมถึงประเภทเกลาเช่น int และสตริง) ให้ความปลอดภัยเกินกว่าสิ่งที่สามารถตรวจสอบได้แบบคงที่ในขณะที่คำอธิบายประกอบชนิดมีการเพิ่มค่อยๆ codebase การบังคับใช้เวลาทำงานจะช่วยให้การเขียนโปรแกรมการตรวจสอบและวินิจฉัยบางชนิดของปัญหาได้ง่ายขึ้นและมันจะช่วยให้ JIT HHVM ของผลิตรหัสที่มีประสิทธิภาพมากขึ้นโดยการทำให้มันปลอดภัยที่จะไว้วางใจคำอธิบายประกอบชนิดเพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพ. การตรวจสอบชนิดทันทีในระหว่างการพัฒนาโปรแกรม PHP มักจะกลับไปและ ออกมาอย่างรวดเร็วระหว่างซอร์สโค้ดและเบราว์เซอร์ วิศวกรสามารถย้ำเป็นอย่างที่พวกเขาต้องการการทดสอบและการปรับแต่งประสบการณ์จนกว่าจะสมบูรณ์แบบ. ตามเนื้อผ้าตรวจสอบชนิดจะทำลายห่วงความคิดเห็นนี้มันต้องใช้เวลาในการวิเคราะห์รหัสที่มา เราไม่ได้ต้องการที่จะชะลอตัวเวิร์กโฟลว์ PHP, เพื่อให้เราขึ้นมาด้วยวิธีการใหม่ที่จะเจรจาต่อรองข้อเสนอแนะทันทีที่มีความปลอดภัยประเภท. วิธีการแก้ปัญหาของเราคือการตรวจสอบสถาปนิกประเภทเป็นเซิร์ฟเวอร์ในท้องถิ่นที่นาฬิการะบบแฟ้ม เซิร์ฟเวอร์เก็บข้อมูลทั้งหมดที่เกี่ยวกับแหล่งที่มาของรหัสในหน่วยความจำและจะปรับปรุงตัวเองเมื่อมีการเปลี่ยนแปลงไฟล์บนดิสก์ วิธีการนี้ได้จ่ายเงินออก:. ตรวจสอบชนิดมักจะทำงานในเวลาน้อยกว่า 200 มิลลิวินาทีและไม่ค่อยใช้เวลากว่าสองทำให้มันง่ายที่จะรวมเข้ากับเวิร์กโฟลว์การพัฒนาโดยไม่ต้องแนะนำล่าช้ารหัสการโยกย้ายความปลอดภัยชนิดสับและผลประโยชน์ refactoring เติบโตมากขึ้น มันถูกใช้ภายใน codebase การทำความเข้าใจว่ามันจะเป็นเรื่องยากสำหรับรหัสบางอย่างที่จะได้รับการเปลี่ยนอย่างสมบูรณ์การสับทันทีมันเป็นสิ่งสำคัญสำหรับเราที่สับได้รับการพัฒนาดังกล่าวว่าสามารถอยู่ร่วมกันได้โดยตรงกับไฟล์ PHP อื่น ๆ ในขณะที่มันจะถูกนำขึ้นเรื่อย ๆ . ส่วนที่เหลือของขั้นตอนการแปลง เช่นการเพิ่มคำอธิบายประกอบชนิดและใช้คุณลักษณะภาษาใหม่สามารถทำได้ตามความเหมาะสมสำหรับ codebase ยกตัวอย่างเช่นคำอธิบายประกอบชนิดสามารถเพิ่มฟังก์ชั่นสำหรับหนึ่ง แต่ซ้ายปิดฟังก์ชั่นอื่นแม้จะอยู่ในไฟล์เดียวกัน ถ้าพารามิเตอร์ฟังก์ชั่นหรือสมาชิกในระดับไม่ได้มีคำอธิบายประกอบอย่างชัดเจนประเภท, ตรวจสอบการพิจารณาประเภทประเภทที่จะเป็นแบบไดนามิกและมันก็ไม่ได้ตรวจสอบชนิดของค่าที่. ภายใน Facebook, เราพบว่าวิศวกรของเราชื่นชมสับพอที่จะทำให้พวกเขาเริ่มต้น ส่วนใหญ่ของการแปลงรหัสของตัวเองโดยสมัครใจ มีนับล้านของบรรทัดของรหัสในต้นไม้ของเราเรายังต้องการรูปแบบของระบบอัตโนมัติบางอย่างเพื่อให้เราสร้างและใช้จำนวนของเครื่องมือการปรับเปลี่ยนรหัสเพื่อช่วยให้กระบวนการ (ซึ่งเราจะปล่อยเป็นส่วนหนึ่งของสับ). ไม่ต้องกังวลของคุณ PHP เป็นปลอดภัย! HHVM ยังคงเป็นรันไทม์ PHP, และเราตั้งใจที่จะให้มันเป็นอย่างนั้น ในความเป็นจริงที่เรากำลังทำงานอย่างหนักที่จะไปถึงความเท่าเทียมกันกับ PHP-5 หนึ่งในความสำคัญด้านบน HHVM คือการใช้ PHP-5 รหัสที่มาแปรทั้งชุมชนและเพราะเราพึ่งพาห้องสมุด PHP บุคคลที่สามภายใน. HHVM อยู่ในขณะนี้รันไทม์ที่สนับสนุน * ทั้ง * PHP และสับเพื่อให้คุณสามารถเริ่มต้นที่จะ ใช้ประโยชน์จากการสับของคุณสมบัติใหม่ที่เพิ่มขึ้น. ขอให้สนุกกับสับ! เรามีความยินดีที่จะเปิดแหล่งที่มาทั้งสับและเครื่องมือที่คุณสามารถใช้ในการแปลงโดยอัตโนมัติ codebase ของคุณ นี่เป็นเพียงขั้นตอนแรกและเรามีความมุ่งมั่นที่จะดำเนินการต่อที่จะพัฒนาซอฟต์แวร์นี้เพื่อให้การพัฒนายิ่งขึ้นสำหรับทั้งวิศวกรของเราเองและชุมชนในวงกว้าง ค่าตัดคือ * ไม่ * จำกัด ให้กับโครงการใหญ่ที่มีข้อมูลประเภทข้อความผิดพลาดที่ดีและข้อเสนอแนะอย่างรวดเร็ว codebases ขนาดเล็กที่สามารถเก็บเกี่ยวผลประโยชน์ของสับเช่นกัน. เดือนถัดไปเรายังจะแนะนำภาษาที่วันพัฒนาสับบน มหาวิทยาลัย Facebook ในเมนโลพาร์คและเราหวังที่จะเห็นคุณมีในคนหรือออนไลน์. เรารักที่จะมีข้อเสนอแนะของคุณในการทำงานของเราเพื่อให้ห่างไกลและยินดีต้อนรับทุกท่านที่มีส่วนร่วมในชุมชน HHVM และสับ. กิตติกรรมประกาศมีหลายคนเป็นใคร มีส่วนร่วมในการพัฒนาของสับ. แกนสับทีมประกอบด้วยมั๊ย Verlaguet โจเอล Beales, ยู Letuchy กาเบรียลลีวายส์, โจเอล Marcey, เอริคเมย์เยอร์, ​​Alok Menghrajani ไบรอันซัลลิแวนดึง Paroski เจมส์เพียร์ซ, โจเอล Pobar และ . โจชัวรถตู้คัน Watzman ขอขอบคุณเป็นพิเศษไปที่ชุมชนของเราเริ่มต้น adopters ในการให้ข้อเสนอแนะที่มีคุณค่าที่จะทำให้ภาษาที่ดีกว่า:. เจมส์มิลเลอร์, ไซมอนเวลส์, นิลส์ Adermann, Fabien Potencier และอเล็กซานเด Mols สับเป็นลายลักษณ์อักษรเป็นหลักใน OCaml เราอยากจะขอขอบคุณทีมแกลเลียม (INRIA) สำหรับการพัฒนาของภาษา OCaml และทีม Ocsigen (CNRS - มหาวิทยาลัย Diderot ปารีส - INRIA). สำหรับการพัฒนาในส่วนของ js_of_ocaml Ocsigen และแน่นอนขอขอบคุณ เพื่อคนอื่น ๆ ที่ได้มีส่วนช่วยให้สับภาษาที่เป็นอยู่ในปัจจุบัน รายการจะหมดแรงเกินไปสำหรับการโพสต์บล็อก แต่คุณรู้ว่าคุณเป็นใคร

























































การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ทุก PHP โปรแกรมเมอร์คุ้นเคยกับงานแบบวันต่อวัน ที่อาจดูซับซ้อน หรือยุ่งยาก รหัสข้างต้นเป็นตัวอย่างที่ดีของการผิดพลาดทั่วไปที่ไม่คาดคิดเป็นวิธีเรียกวัตถุ null , ก่อให้เกิดข้อผิดพลาดที่ไม่ถูกจับ จนกระทั่งทำงาน . อีกตัวอย่างคือ API ที่ซับซ้อนที่นักพัฒนาอาจจะมีความเข้าใจที่มั่นคงของความหมาย แต่ยังใช้เวลามองชื่อวิธีการทางโลกในเอกสาร

ที่ Facebook ขนาด - มีหลายพันของวิศวกรจัดส่งรหัสใหม่สองวัน - ชะลอตัวแบบนี้เป็นปัญหามากขึ้น ก่อนที่จะสับเราก็มีภาษาง่ายๆด้วยห่วง - ตอบสนองที่รวดเร็วแต่เราจะลดประเภทของปัญหาที่อธิบายไว้ข้างต้น ? สามารถตรวจหาข้อผิดพลาดอยู่ร่วมกับการทำซ้ำทั้งหมดในขณะที่การรักษาเงินลงทุนของเราใน PHP ? สามารถปรับปรุงการวิเคราะห์รหัสและวิปัสสนาช่วยให้นักพัฒนามากขึ้นด้วยเครื่องมือเช่นอัตโนมัติสมบูรณ์

ผ้า
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: