பேஸ்புக் அறிமுகப்படுத்தப்பட்டது சமீபத்தில் "பக் 2" என்று அழைக்கப்படும் ஒரு புதிய உருவாக்க அமைப்பை வெளியிட்டது, அது அதைக் குறிப்பிடுகிறது களஞ்சியங்களில் இருந்து திட்டங்களை உருவாக்குவதில் கவனம் செலுத்தியது மிகவும் வெவ்வேறு மொழிகளில் குறியீட்டை உள்ளடக்கிய பெரியவை நிரலாக்க.
வேறுபாடுகள் புதிய நடைமுறைக்கும் அமைப்புக்கும் இடையில் முன்பு பயன்படுத்தப்பட்ட பக் பேஸ்புக் மூலம் ஜாவாவிற்குப் பதிலாக ரஸ்ட் மொழியைப் பயன்படுத்துகின்றனர் மற்றும் அசெம்பிளி செயல்பாட்டின் செயல்திறன் மற்றும் செயல்திறனில் குறிப்பிடத்தக்க அதிகரிப்பு (அதே உள்கட்டமைப்பில் உள்ள உள் சோதனைகளில், பக்2 அசெம்பிளி பணிகளை பக் விட இரண்டு மடங்கு வேகமாகச் செய்கிறது).
பில்ட் சிஸ்டம்கள் டெவலப்பருக்கும் அதன் குறியீடு இயங்குவதற்கும் இடையில் நிற்கின்றன, எனவே அனுபவத்தை வேகமாக அல்லது அதிக உற்பத்தி செய்ய நாம் செய்யக்கூடிய அனைத்தும் டெவலப்பர் எவ்வளவு பயனுள்ளதாக இருக்கும் என்பதை நேரடியாகப் பாதிக்கிறது. Buck2 இன் குறிக்கோள், Buck1 (அடிப்படைகள் மற்றும் பணிப்பாய்வுகள்) பற்றி நாம் விரும்புவதை வைத்து, Buck1 க்குப் பிந்தைய கண்டுபிடிப்புகளிலிருந்து (Bazel, Adapton மற்றும் Shake உட்பட) உத்வேகம் பெறுவது மற்றும் வேகத்தில் கவனம் செலுத்துதல் மற்றும் புதிய அனுபவங்களைச் செயல்படுத்துதல்.
பக்2 பற்றி
அது சிறப்பிக்கப்படுகிறது குறிப்பிட்ட மொழிகளில் குறியீட்டை உருவாக்குவதுடன் கணினி இணைக்கப்படவில்லை மேலும், இது C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell மற்றும் OCaml ஆகியவற்றில் எழுதப்பட்ட பில்டர் திட்டங்களை ஆதரிக்கிறது.
பைத்தானை அடிப்படையாகக் கொண்ட Starlark மொழி (Bazel இல் உள்ளது) செருகுநிரல்களை வடிவமைக்க, ஸ்கிரிப்டுகள் மற்றும் விதிகளை உருவாக்க பயன்படுகிறது. ஸ்டார்லார்க், கட்டுமான அமைப்பின் திறன்களை நீட்டிக்கவும், கட்டமைக்கப்பட்ட திட்டங்களில் பயன்படுத்தப்படும் குறிப்பிட்ட மொழிகளிலிருந்து சுருக்கவும் அனுமதிக்கிறது.
என்று குறிப்பிடப்பட்டுள்ளது முடிவுகளை தேக்கி வைப்பதன் மூலம் உயர் செயல்திறன் அடையப்படுகிறது, வேலையை இணையாகச் செய்தல் மற்றும் பணிகளின் தொலைநிலைச் செயல்பாட்டிற்கான ஆதரவு (ரிமோட் பில்ட் எக்ஸிகியூஷன்).
உருவாக்க சூழல் "ஹெர்மெடிசிட்டி" என்ற கருத்தைப் பயன்படுத்துகிறது: தொகுக்கப்பட்ட குறியீடு வெளி உலகத்திலிருந்து துண்டிக்கப்பட்டுள்ளது, உருவாக்க செயல்பாட்டின் போது வெளியில் இருந்து எதுவும் ஏற்றப்படாது, மேலும் வெவ்வேறு கணினிகளில் வேலையை மீண்டும் மீண்டும் செயல்படுத்துவது ஒரே முடிவுக்கு வழிவகுக்கிறது (மீண்டும் மீண்டும் உருவாக்குதல், எடுத்துக்காட்டாக, ஒரு திட்டத்தை தொகுத்ததன் விளைவு டெவலப்பரிடமிருந்து வரும் இயந்திரம் தொடர்ச்சியான ஒருங்கிணைப்பு சேவையகத்தின் உருவாக்கம் போலவே இருக்கும்). சார்பு நிலை இல்லாதது பக்2 இல் ஒரு பிழையாகக் கருதப்படுகிறது.
ஒரு பகுதியில் பக்2 முக்கிய அம்சங்கள், பின்வருபவை தனித்து நிற்கின்றன:
- நிரலாக்க மொழிகளை ஆதரிப்பதற்கான விதிகள் மற்றும் முக்கிய உருவாக்க அமைப்பு முற்றிலும் தனித்தனியாக உள்ளன. விதிகள் ஸ்டார்லார்க் மொழியில் எழுதப்பட்டுள்ளன, மேலும் ஸ்டார்லார்க் கருவித்தொகுப்பு மற்றும் செயல்படுத்தல் ரஸ்டில் எழுதப்பட்டுள்ளன.
- உருவாக்க அமைப்பு ஒற்றை அதிகரிக்கும் சார்பு வரைபடத்தைப் பயன்படுத்துகிறது (நிலைப்படுத்தல் இல்லை), இது Buck மற்றும் Bazel உடன் ஒப்பிடும்போது வேலையின் இணையாக்கத்தின் ஆழத்தை அதிகரிக்கவும், பல வகையான பிழைகளைத் தவிர்க்கவும் உங்களை அனுமதிக்கிறது.
- GitHub இல் இடுகையிடப்பட்ட Buck2 இன் குறியீடு மற்றும் நிரலாக்க மொழி ஆதரவு விதிகள் Facebook இன் உள்கட்டமைப்பில் பயன்படுத்தப்படும் உள் பதிப்பிற்கு கிட்டத்தட்ட ஒரே மாதிரியானவை (பேஸ்புக் பயன்படுத்தும் கம்பைலர் பதிப்புகள் மற்றும் உருவாக்க சேவையகங்களுக்கான இணைப்பில் மட்டுமே வேறுபாடுகள் உள்ளன).
- ரிமோட் சர்வர்களில் வேலைகளை இயக்க உங்களை அனுமதிக்கும் ரிமோட் ஜாப் எக்ஸிகியூஷன் சிஸ்டங்களுடன் ஒருங்கிணைக்கும் வகையில் உருவாக்க அமைப்பு வடிவமைக்கப்பட்டுள்ளது. ரிமோட் எக்ஸிகியூஷன் API ஆனது Bazel உடன் இணக்கமானது மற்றும் Buildbarn மற்றும் EngFlow உடன் இணக்கத்தன்மைக்காக சோதிக்கப்பட்டது.
- மெய்நிகர் கோப்பு முறைமைகளுடன் ஒருங்கிணைப்பு வழங்கப்படுகிறது, இதில் முழு களஞ்சியத்தின் உள்ளடக்கங்களும் வழங்கப்படுகின்றன, ஆனால் உண்மையில், களஞ்சியத்தின் ஒரு பகுதியின் உண்மையான உள்ளூர் பகுதியுடன் பணி மேற்கொள்ளப்படுகிறது (டெவலப்பர் முழு களஞ்சியத்தையும் பார்க்கிறார், ஆனால் என்ன தேவை) அணுகப்பட்ட கோப்புகள் களஞ்சியத்திலிருந்து மீட்டெடுக்கப்படும்). EdenFS-அடிப்படையிலான VFS மற்றும் Git LFS ஆகியவை ஆதரிக்கப்படுகின்றன, அவை Sapling ஆல் பயன்படுத்தப்படுகின்றன.
இறுதியாக, அதைப் பற்றி மேலும் அறிய ஆர்வமுள்ளவர்கள், Apache 2.0 உரிமத்தின் கீழ் குறியீடு விநியோகிக்கப்பட்டுள்ளது என்பதை அவர்கள் அறிந்து கொள்ள வேண்டும், மேலும் அவர்கள் விவரங்களைக் கலந்தாலோசிக்கலாம். பின்வரும் இணைப்பில்.