คำถามติดแท็ก libraries

ไลบรารีคือชุดของทรัพยากรที่ให้ข้อมูลและ / หรือบริการสำหรับการพัฒนาซอฟต์แวร์อิสระ

14
เหตุใดแอปเดสก์ท็อปที่เขียนด้วย Qt ไม่มากขึ้น [ปิด]
เท่าที่ฉันรู้และเข้าใจในประสบการณ์ของฉันกับ Qt มันเป็นห้องสมุดที่ดีและง่ายต่อการเรียนรู้ มันมี API ที่ออกแบบมาเป็นอย่างดีและข้ามแพลตฟอร์มและนี่เป็นเพียงสองคุณสมบัติที่ทำให้มันน่าสนใจ ฉันสนใจที่จะรู้ว่าทำไมโปรแกรมเมอร์มากขึ้นจึงไม่ใช้ Qt มีข้อบกพร่องที่พูดกับมันหรือไม่? ฟีเจอร์ใดที่ทำให้ไลบรารี่อื่นดีกว่า Qt ปัญหาเกี่ยวข้องกับการออกใบอนุญาตหรือไม่
202 api  libraries  qt 

13
ข้อยกเว้น vs ชุดผลลัพธ์ว่างเปล่าเมื่ออินพุตมีความถูกต้องทางเทคนิค แต่ไม่น่าพอใจ
ฉันกำลังพัฒนาห้องสมุดที่มีไว้สำหรับเผยแพร่สู่สาธารณะ มันมีวิธีการต่าง ๆ สำหรับการทำงานกับชุดของวัตถุ - การสร้างการตรวจสอบการแบ่งและการฉายชุดในรูปแบบใหม่ ในกรณีที่มีความเกี่ยวข้องมันเป็นไลบรารีคลาส C # ที่มีส่วนขยายของสไตล์ LINQ IEnumerableที่จะเปิดตัวเป็นแพ็คเกจ NuGet วิธีการบางอย่างในไลบรารีนี้สามารถให้พารามิเตอร์อินพุตที่ไม่น่าพอใจ ตัวอย่างเช่นในวิธี combinatoric มีวิธีการสร้างชุดnรายการทั้งหมดที่สามารถสร้างขึ้นจากชุดแหล่งที่มาของรายการm ตัวอย่างเช่นกำหนดชุด: 1, 2, 3, 4, 5 และขอให้รวมกัน 2 จะผลิต: 1, 2 1, 3 1, 4 ฯลฯ ... 5, 3 5, 4 เห็นได้ชัดว่าเป็นไปได้ที่จะขอสิ่งที่ไม่สามารถทำได้เช่นให้ชุด 3 รายการจากนั้นขอชุดค่าผสม 4 รายการพร้อมตั้งค่าตัวเลือกที่ระบุว่าสามารถใช้งานได้เพียงครั้งเดียว ในสถานการณ์สมมตินี้แต่ละพารามิเตอร์จะถูกต้องเป็นรายบุคคล : การรวบรวมแหล่งที่มาไม่เป็นโมฆะและมีรายการต่างๆ ขนาดที่ต้องการของชุดค่าผสมเป็นจำนวนเต็มบวกที่ไม่ใช่ศูนย์ โหมดที่ร้องขอ (ใช้แต่ละรายการเพียงครั้งเดียว) เป็นตัวเลือกที่ถูกต้อง …

9
ไลบรารีโอเพ่นซอร์สขนาดใหญ่จะได้รับการดูแลรักษาอย่างไรในขณะที่มีรหัสห่างไกลจากวิธีปฏิบัติที่“ สะอาดโค้ด”
ฉันยังไม่มีประสบการณ์ในการเขียนรหัสคุณภาพสูงดังนั้นฉันจึงอ่านหนังสือเกี่ยวกับปัญหาเช่นClean Codeของ Robert C. Martin และตรวจสอบรหัสของห้องสมุดที่มีชื่อเสียงเพื่อพัฒนาทักษะของฉัน แม้ว่าไลบรารีโอเพนซอร์สจำนวนมากได้รับการดูแลรักษามานานหลายปีซึ่งหมายความว่ามันไม่น่าเป็นไปได้ที่พวกเขาจะไม่ได้อยู่ในเส้นทางที่ถูกต้อง แต่ฉันพบว่าโค้ดในหลาย ๆ โค้ดหลายร้อยบรรทัด ดังนั้นคำถามของฉันคือ: หลักการของโค้ดที่สะอาดเกินไปถูก จำกัด และเราสามารถทำได้โดยไม่ต้องใช้พวกมันในห้องสมุดหลาย ๆ ถ้าไม่เป็นเช่นนั้นห้องสมุดขนาดใหญ่จะได้รับการดูแลอย่างไรโดยไม่คำนึงถึงหลักการเหล่านี้มากมาย? ฉันขอขอบคุณที่ชี้แจงสั้น ๆ ฉันขอโทษถ้าคำถามดูเหมือนว่าโง่จากมือใหม่ แก้ไข ตรวจสอบตัวอย่างนี้ในห้องสมุดButterknife - หนึ่งในห้องสมุดที่มีชื่อเสียงที่สุดในชุมชน Android

2
การพึ่งพา Java "สีเทา" คืออะไร?
นักพัฒนา JVM ที่นี่ เมื่อเร็ว ๆ นี้ฉันเคยเห็น banter ในห้องแชทของ IRC และแม้แต่ในสำนักงานของฉันเองเกี่ยวกับห้องสมุด Java ที่เรียกว่า " แรเงา " บริบทของการใช้งานจะเป็นดังนี้: " เช่นนั้นมอบไคลเอ็นต์" ที่แรเงา "สำหรับ XYZ " ตัวอย่างที่สมบูรณ์แบบคือปัญหาของ Jira สำหรับ HBase : " เผยแพร่สิ่งประดิษฐ์ของลูกค้าที่มีการขึ้นต่อกันของสีเทา " ดังนั้นฉันถาม: JAR สีเทาหมายความว่าอะไร "แรเงา"?
74 java  libraries  jvm 

3
ทำไมเฟรมเวิร์ก / ไลบรารี JavaScript มีฟังก์ชั่นที่มีอยู่แล้วในจาวาสคริปต์แท้?
ฉันสงสัยว่าทำไมเฟรมเวิร์ก / ห้องสมุดมีผู้ช่วยเหลือเป็นของตัวเอง ลองทำjQueryและAngularJSกัน พวกเขามีeachฟังก์ชั่นตัววนซ้ำของตัวเอง: jQuery.each () angular.forEach () Array.prototype.forEachแต่เรามี ในทำนองเดียวกัน jQuery.parseJSON () angular.fromJson () แต่เรามีJSON.parse()ฟังก์ชั่นใน JavaScript วานิลลา

2
ไลบรารีส่วนหัวเท่านั้นมีประสิทธิภาพมากกว่าหรือไม่
สมมติฐาน ข้อดีอย่างหนึ่งของไลบรารีส่วนหัวเท่านั้นสำหรับ C ++ คือไม่จำเป็นต้องรวบรวมแยกต่างหาก ใน C และ C ++ inlineเหมาะสมเมื่อฟังก์ชันถูกกำหนดในไฟล์ส่วนหัว * ตามเนื้อผ้ามีการใช้รูปแบบ C, .c / .h โดยที่ส่วนหัวแสดงส่วนติดต่อสาธารณะที่น้อยที่สุดของหน่วยการแปล ในทำนองเดียวกัน. cpp / hpp คำถาม ไลบรารีส่วนหัวเท่านั้นโดยทั่วไปมีประสิทธิภาพมากขึ้น - เวลาในการประมวลผลและฉลาดกว่าเลย์เอาต์ดั้งเดิมหรือไม่? ถ้าเป็นเช่นนี้เป็นเพราะการอินไลน์อย่างกว้างขวางหรือการเพิ่มประสิทธิภาพอื่น ๆ ? * - การกำหนดฟังก์ชั่นในส่วนหัวช่วยให้คอมไพเลอร์สามารถเห็นการใช้งานในระหว่างการรวบรวมหน่วยการแปลใด ๆ และทำให้สามารถสร้างโค้ดอินไลน์ได้
48 c++  c  libraries 

16
มีเหตุผลที่เป็นรูปธรรมหรือไม่ที่จะไม่ใช้ไลบรารีและตัวอย่างของโค้ดอย่างหนัก? [ปิด]
โดยรวมแล้วฉันอยู่ในการเขียนโปรแกรมประมาณ 8 ปีแล้วและดูเหมือนว่าฉันจะต้องพึ่งพาห้องสมุดและตัวอย่างโอเพ่นซอร์สมากขึ้นเรื่อย ๆ (คุณ GitHub! ฉันรู้ว่าในเวลาที่ฉันสามารถเขียนการใช้งานของตัวเอง แต่ฉันชอบที่จะมุ่งเน้นไปที่การออกแบบโดยรวม นี่เป็นเรื่องปกติ (ไม่ใช่สภาพแวดล้อมขององค์กร) หรือไม่ จะเกิดอะไรขึ้นถ้า "การเขียนโปรแกรม" ของฉันไม่มีอะไรมากไปกว่าการติดไลบรารี่ต่าง ๆ เข้าด้วยกัน? ฉันรู้เกี่ยวกับ "ไม่ต้องคิดค้นล้อใหม่" แต่จะเกิดอะไรขึ้นเมื่อคุณไม่ได้ประดิษฐ์ล้อเดียวอีกต่อไป

5
มันถือว่าเป็นรูปแบบการต่อต้านการอ่านจาก STDIN จากภายในห้องสมุดหรือไม่?
ในขณะที่เขียนห้องสมุดสำหรับโครงการขนาดใหญ่ที่ฉันกำลังทำงานอยู่มีปัญหาเกิดขึ้นซึ่งต้องใช้โทเค็นเพื่อส่งไปยังที่อยู่อีเมลจากนั้นส่งกลับไปยังรหัสที่สามารถใช้เพื่อการใช้งานต่อไป เพื่อนร่วมงานของฉันบอกว่าให้อ่านจาก STDIN (โดยใช้ Python:) code = input("Enter code: ")จากนั้นให้ผู้ใช้ส่งมันมาให้ฉัน แต่สำหรับฉันนี่เป็นวิธีปฏิบัติที่ไม่ดีเนื่องจากห้องสมุดอาจใช้ (ในกรณีนี้จะ) ใช้ในงานแบ็คกราวน์บนเซิร์ฟเวอร์ . ฉันสงสัยว่าสิ่งนี้ถือเป็นรูปแบบการต่อต้านหรือไม่

3
ที่อยู่ C ++ 11 เกี่ยวข้องกับการส่งวัตถุ std lib ระหว่างขอบเขตไลบรารีแบบไดนามิก / ใช้ร่วมกันหรือไม่? (เช่นที่กำลังเป็นต้น)?
หนึ่งในข้อร้องเรียนหลักของฉันเกี่ยวกับ C ++ คือวิธียากในทางปฏิบัติก็คือการส่งวัตถุไลบรารี std นอกขอบเขตไลบรารีแบบไดนามิก (เช่น dll / ดังนั้น) ไลบรารี std มักเป็นส่วนหัวเท่านั้น ซึ่งเป็นสิ่งที่ดีสำหรับการเพิ่มประสิทธิภาพที่ยอดเยี่ยม อย่างไรก็ตามสำหรับ dll พวกเขามักจะสร้างด้วยการตั้งค่าคอมไพเลอร์ที่แตกต่างกันซึ่งอาจส่งผลกระทบต่อโครงสร้างภายใน / รหัสของคอนเทนเนอร์ไลบรารี std ตัวอย่างเช่นใน MSVC dll หนึ่งอาจสร้างขึ้นด้วยการดีบัก iterator ในขณะที่คนอื่นสร้างมันออก Dll ทั้งสองนี้อาจพบปัญหาในการส่งผ่านคอนเทนเนอร์มาตรฐาน หากฉันเปิดเผยstd::stringในส่วนต่อประสานของฉันฉันไม่สามารถรับประกันได้ว่ารหัสที่ลูกค้าใช้std::stringอยู่นั้นตรงกับห้องสมุดของฉันstd::stringทั้งหมด สิ่งนี้นำไปสู่ปัญหาการดีบักปัญหาปวดหัว ฯลฯ คุณควบคุมการตั้งค่าคอมไพเลอร์ในองค์กรของคุณอย่างแน่นหนาเพื่อป้องกันปัญหาเหล่านี้หรือคุณใช้อินเทอร์เฟซ C ที่ง่ายกว่าที่ไม่มีปัญหาเหล่านี้ หรือระบุให้กับลูกค้าของคุณถึงการตั้งค่าคอมไพเลอร์ที่คาดหวังที่พวกเขาควรใช้ (ซึ่งจะดูดถ้าห้องสมุดอื่นระบุการตั้งค่าคอมไพเลอร์อื่น ๆ ) คำถามของฉันคือ C ++ 11 พยายามทำสิ่งใดเพื่อแก้ไขปัญหาเหล่านี้หรือไม่
34 c++  libraries  c++11 

7
คุณควรใช้ห้องสมุดเมื่อคุณสามารถทำงานได้โดยไม่ต้องหรือไม่ [ปิด]
ฉันอยู่ในสถานการณ์ที่ฉันสามารถใช้ปลั๊กอิน JavaScript แบบโอเพ่นซอร์สเพื่อทำภารกิจให้สำเร็จ แต่เมื่อฉันพยายามที่จะใช้มันฉันพบว่าตัวเองต้องออกแบบสิ่งต่าง ๆ มากมายที่ฉันได้ทำไปแล้วและมันก็เพิ่มความซับซ้อนบางอย่างในความเห็นที่ต่ำต้อยของฉันให้กับโครงการ ในขณะที่ฉันสามารถทำงานเดียวกันด้วยรหัสที่สะอาดฉันสามารถสร้างงานเองได้และไม่จำเป็นต้องเปลี่ยนสิ่งที่ฉันทำไปแล้ว คุณควรเลือกใช้ห้องสมุดในสถานการณ์นี้ (เช่นเพื่อประโยชน์ของรหัสที่มีคุณภาพดีกว่าหรือไม่)

14
การพัฒนา JavaScript ดั้งเดิมมีประโยชน์อย่างไรบ้าง? [ปิด]
เมื่อพิจารณาถึงการพัฒนา jQuery ที่ง่ายกว่ามากเมื่อเปรียบเทียบกับ JavaScript ดั้งเดิมสิ่งใดที่ทำให้คนละทิ้งห้องสมุดอย่าง jQuery เป็นเพราะ jQuery มีข้อ จำกัด หรือช้า? ฉันหมายความว่าถ้า jQuery นั้นง่ายมากเมื่อเทียบกับจาวาสคริปต์ดั้งเดิมเหตุผลอะไรที่ผู้คนยังต้องใช้จาวาสคริปต์ที่บริสุทธิ์

16
คุณมีห้องสมุด 'misc utils' ของคุณเองหรือไม่? ส่วนไหนที่คุณภูมิใจมากที่สุด [ปิด]
ฉันรู้ว่าพวกเราหลายคนรักษาห้องสมุดส่วนตัวเล็ก ๆ ของเราเองด้วยเครื่องมือและโปรแกรมอรรถประโยชน์ที่เราใช้บ่อย ๆ ฉันมีของฉันตั้งแต่ฉันอายุ 16 ปีดังนั้นมันจึงมีขนาดค่อนข้างใหญ่ บางสิ่งที่ฉันเขียนได้ถูกเพิ่มลงในเฟรมเวิร์ก ฉันเขียนการนำต้นไม้แสดงออกมาใช้เล็กน้อยเพื่อใช้กับอัลกอริธึมทางพันธุกรรมมานานก่อน LINQ ซึ่งฉันค่อนข้างชอบและภูมิใจในเวลานั้นแน่นอนว่ามันไร้ประโยชน์อย่างแน่นอน แต่เมื่อเร็ว ๆ นี้ฉันได้ผ่านมันไปแล้วและอัปเกรดเป็น. NET 4.0 และกระตุ้นความสนใจอีกครั้ง ดังนั้นฉันอยากรู้ว่าคุณใช้ห้องสมุดของคุณเพื่ออะไร บางทีเราอาจได้ไอเดียเจ๋ง ๆ บางอย่างมาเพื่อตัวอย่างเล็ก ๆ น้อย ๆ ที่มีประโยชน์และแบ่งปันกับพวกเรา ดังนั้นคำถามของฉันคือ: คุณมีห้องสมุดสาธารณูปโภคอื่น ๆ หรือไม่? ส่วนไหนที่คุณภูมิใจมากที่สุดและเพราะอะไร ยกตัวอย่างรหัสถ้าคุณชอบ :-)

7
เหตุใดจึงต้องใช้ "การจัดการ" แบบทึบซึ่งต้องใช้การคัดเลือกใน Public API แทนที่จะเป็นตัวชี้ struct
ฉันกำลังประเมินห้องสมุดซึ่งปัจจุบัน API สาธารณะมีลักษณะเช่นนี้: libengine.h /* Handle, used for all APIs */ typedef size_t enh; /* Create new engine instance; result returned in handle */ int en_open(int mode, enh *handle); /* Start an engine */ int en_start(enh handle); /* Add a new hook to the engine; hook handle returned in h2 …

1
สิ่งที่ควรทราบเมื่อเปิดแอปที่ใช้ไลบรารี่ที่ได้รับอนุญาตภายใต้ Apache 2.0 License [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิด5 เดือนที่ผ่านมา ฉันกำลังสร้างแอพ Android ที่พร้อมจะเปิดตัวเร็ว ๆ นี้ ฉันแค่จะใช้ระบบแท็บโดยใช้ห้องสมุดนี้ ผมอ่านว่ามันอยู่ภายใต้สัญญาอนุญาต Apache 2.0 ฉันไม่เคยใช้ไลเซนส์ไลบรารี่ใด ๆ สำหรับแอพ / โปรแกรม / เกมที่ฉันเผยแพร่ (เพราะฉันไม่ได้แจกจ่ายอะไรเลย) ดังนั้นฉันจึงไม่มีประสบการณ์เกี่ยวกับไลเซนส์และไลเซนส์ไลบรารี่ดังนั้นฉันจึงสงสัยว่ามีอะไรบ้าง พึงระลึกไว้เสมอเมื่อทำการเผยแพร่แอพที่ใช้ไลบรารี่ที่ได้รับอนุญาตภายใต้ Apache 2.0 License เก็บไว้ในใจ ฉันถามคำถามนี้ที่StackOverflowแต่ฉันแนะนำให้ย้ายไปที่โปรแกรมเมอร์แทน แต่เพื่อตรวจสอบศูนย์ช่วยเหลือหากเว็บไซต์นี้ยอมรับคำถามประเภทนี้ก่อนที่ฉันจะโพสต์ ฉันทำและเท่าที่ฉันสามารถเห็นและเข้าใจในสิ่งที่ฉันอ่านคำถามประเภทนี้ได้รับอนุญาต ฉันได้อ่านคำถามที่คล้ายกันหลายข้อและพบคำตอบสำหรับคำถามบางคำถามของฉัน แต่ยังมีบางสิ่งที่ฉันสงสัยและฉันต้องการชัดเจนดังนั้นฉันจึงไม่ทำผิดพลาด นี่คือคำถามที่เหลืออยู่ ฉันอ่านว่า"ผู้ใช้แอปพลิเคชันของฉันต้องได้รับสำเนาของ Apache 2.0 License เพื่อหลีกเลี่ยงความสับสนคุณควรระบุว่าส่วนใดของการแจกจ่ายสิทธิ์ใช้งานนั้น" มันเพียงพอหรือไม่ที่จะใส่ลิงค์ไปยัง Apache 2.0 License ในหน้า …

1
Vanilla JS ยังถือว่าเป็นห้องสมุดหรือไม่?
เมื่อไม่นานมานี้ฉันพบว่า VanillaJS (document?) เป็นไลบรารีที่รวมกับเบราว์เซอร์ 99% เท่านั้นและไม่ใช่ JavaScript ดั้งเดิม ในขณะที่เขียน lib ของฉันฉันมักจะหลีกเลี่ยงสิ่งที่เป็นประโยชน์ทั้งหมด libs ส่วนใหญ่ ตอนนี้ฉันมีสามคำถาม: VanillaJS ยังถือว่าเป็น lib หรือไม่? มีวิธีทำอะไรกับ DOM ที่ไม่มี VanillaJS หรือไม่? libs ที่สำคัญนั้นใช้ VanillaJS หรือ native JS (ไม่มีสิ่งของ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.