ภูมิปัญญาของการใช้รหัสโอเพนซอร์ซในผลิตภัณฑ์ซอฟต์แวร์เชิงพาณิชย์


13

ฉันกำลังมองหาที่ใช้โค้ดบางส่วนที่มาเปิดใน app เว็บของฉัน ASP.NET (เฉพาะDapper ) การจัดการไม่ได้เป็นแฟนเพราะโอเพ่นซอร์สถูกมองว่าเป็นความเสี่ยงที่กัดเรามาก่อน เห็นได้ชัดว่าผู้พัฒนาก่อนหน้านี้ต้องแก้ไขสิ่งต่าง ๆ หลังจากที่ส่วนประกอบโอเพ่นซอร์สล้มเหลว

ข้อดีดูเหมือนจะเป็น:

  • มันทำสิ่งต่าง ๆ มากมายสำหรับฉันที่อาจเกี่ยวข้องกับรหัส boilerplate จำนวนมากหรือโซลูชันที่ Microsoft แนะนำ แต่ช้าลง (Entity Framework)

จุดด้อย:

  • มันซับซ้อนพอที่ถ้าหากมันจะล้มเหลวทันทีในการผลิตฉันจะกดยากที่จะแก้ไข อย่างไรก็ตามมีการใช้งานในไซต์ที่มีปริมาณการใช้งานสูงกว่าของฉันดังนั้นฉันไม่คิดว่ามันจะกลายเป็นส่วนที่มีความเสี่ยงสูงของโครงการ

ฉันทามติที่นี่คืออะไร? มันไม่ฉลาดที่จะใช้รหัสโอเพนซอร์สในโครงการของฉันที่ฉันไม่รู้จัก / เข้าใจรวมถึงฉันใช้โค้ดของตัวเอง?


15
ASP.NET และสแต็กของมันเปิดอยู่
Andrew T Finnell

11
"ไม่ฉลาดเลยที่จะใช้รหัสโอเพ่นซอร์สในโครงการของฉันซึ่งฉันไม่รู้ / เข้าใจรวมถึงฉันใช้รหัสของตัวเอง?" ตรงข้ามกับไลบรารี่แบบโอเพ่นซอร์สที่มีกล่องดำ?
user16764

5
@AndrewFinnell: ไม่ใช่ตามนิยามของขบวนการ FLOSS
tdammers

6
wrt โครงการ OS เฉพาะที่คุณคิดว่าอาจเป็นที่สนใจว่า Dapper ถูกใช้โดย StackExchange ...
Marjan Venema

4
นี่ไม่ใช่คำถามทางเทคนิคไม่ใช่เรื่องที่ดีกว่า อันไหนจะผิดไป MFC นั้นตายแล้ว XP จะตายในเวลาน้อยกว่า 2 ปีและฟรีและโครงการโอเพนซอร์ซจะไม่ตายหากพวกเขาทำอะไรได้ดีในขณะที่คุณหรือคนอื่นสามารถพาพวกเขาไป นี่คือสิ่งที่เกี่ยวกับผู้ที่จะถูกตำหนิ หากคุณเลือก Microsoft หากไม่คาดฝันหรือข้อผิดพลาดของ Microsoft ถ้าคุณไปฟรี / opensource มันจะเป็นความผิดของคุณ
ctrl-alt-delor

คำตอบ:


20

มันเป็นทางเลือกที่คุณจะต้องทำตามสถานการณ์ที่เฉพาะเจาะจง คุณสามารถลดความเสี่ยงโดย:

  • ทดสอบกรอบอย่างละเอียดโดยหลีกเลี่ยงโอกาสที่จะเกิดความประหลาดใจที่น่ารังเกียจที่จะกัดคุณในสภาพแวดล้อมการผลิตและ
  • ใช้การเชื่อมต่อแบบหลวมเพื่อลดจำนวนรหัสที่ขึ้นอยู่กับกรอบงานโดยตรงดังนั้นคุณสามารถเปลี่ยนเป็นการนำไปใช้งานของคุณเองหากคุณไม่จำเป็นต้องเขียนผลิตภัณฑ์ทั้งหมดใหม่อีกครั้ง

ท้ายที่สุดด้วยโปรเจ็กต์โอเพนซอร์ซที่มีการใช้งานอย่างหนักคุณมีแนวโน้มที่จะใช้เวลาในการเขียนของคุณเองมากกว่าการแก้ไขปัญหาเล็กน้อยที่คุณพบ


16

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

เมื่อคุณเริ่มเข้าสู่โดเมนธุรกิจของคุณคุณจะถูกกดยากขึ้นเพื่อค้นหา OSS ที่ตรงกับความต้องการของคุณ แต่ไม่จำเป็นต้องใช้ผลิตภัณฑ์ ORM อีกครั้ง หากช่างซ่อมมีความซับซ้อนเพียงพอที่คุณจะไม่สามารถแก้ไขข้อผิดพลาดและแก้ไขรหัสได้คุณจะปรับการใช้ชั่วโมงการเขียนให้หมดไปได้อย่างไร นอกจากนี้คุณสามารถ (ควร?) ดูนอกกรอบเสมอที่โซลูชัน NoSQL ในขณะที่คุณทำอยู่

แม้แต่ไลนัสก็ยอมรับว่าเขาพยายามหาวิธีแก้ปัญหา SCM ที่ตรงตามเกณฑ์ทั้งหมดของเขาก่อนที่จะพัฒนา Git อย่างน้อยเขาก็สามารถอธิบายได้ว่าทำไมการแก้ปัญหาที่มีอยู่ไม่ดีพอ

เมื่อถึงจุดหนึ่งในชีวิตของฉันฉันหยุดที่จะเขียนทุกอย่างด้วยตัวเองและต้องการที่จะมุ่งเน้นไปที่การแก้ปัญหาในโลกแห่งความจริง ปัญหาส่วนใหญ่ที่ต้องแก้ไขในธุรกิจนั้นเป็นปัญหาเฉพาะของโดเมน ค้นหาวิธีในการเขียนโค้ดให้น้อยลงไม่มาก


2
+1 ฉันเห็นด้วยกับสิ่งทั้งหมดยกเว้นที่คุณบอกว่าเขา“ (ควร)” ดู NoSQL; โซลูชันการจัดเก็บข้อมูล NoSQL แต่ละตัว - มีจำนวนมาก - มีชุดพิเศษของการแลกเปลี่ยนฐานข้อมูลเชิงสัมพันธ์ SQL "มาตรฐาน" ดังนั้นจึงเป็นการยากที่จะพูดว่า "ควร" โดยไม่มีข้อมูลจำนวนมาก บางครั้งสิ่งเหล่านี้เป็นการแลกเปลี่ยนที่ดีและบางครั้งก็ไม่ใช่ แต่คุณไม่สามารถอธิบายอย่างครอบคลุมได้ “ NoSQL” เป็นเพียงการสร้างแบรนด์ขยะรอบ ๆ เทคโนโลยีที่มีเหมือนกันเล็กน้อยนอกเหนือจากการไม่ได้เป็นรูปแบบการจัดเก็บข้อมูลที่พบมากที่สุด
Donal Fellows

แต่ทุกอย่างที่คุณเขียนฉันเห็นด้วยแน่นอน OSS ที่ดีต้องใช้ความพยายามอย่างมากกับไหล่ของนักพัฒนาทั่วไปที่ทำงาน (และใครที่ต้องการใช้ OSS ที่ไม่ดี)
Donal Fellows

Dapper มีความซับซ้อนเพราะมันเป็นลักษณะทั่วไป ถ้าฉันจะเขียนวิธีแก้ปัญหาของตัวเองฉันจะทำรหัสการแปลงชุดข้อมูลเป็นวัตถุจำนวนมาก (เช่นMyClass.Property = set.Tables[0].Rows[i]["Property"].ToString())
นายเจฟเฟอร์สัน

เมื่อคุณเริ่มเข้าสู่โดเมนธุรกิจของคุณคุณจะถูกกดยากขึ้นเพื่อค้นหา --OSS-- ทุกอย่างที่ตรงตามความต้องการของคุณ เว้นแต่ว่าธุรกิจของ Microsoft เป็นธุรกิจของคุณ ( แต่ผมชอบส่วนที่เหลือของสิ่งที่คุณกล่าวว่า.)
Ctrl-Alt-Delor

@richard คำตอบของฉันบางอย่างอาจไม่ชัดเจน คำพูดของคุณคือสิ่งที่ฉันพูด เหตุใดจึงให้ความสนใจกับชิ้นส่วนที่ได้รับการแก้ไขครั้งแล้วครั้งเล่าเช่น ORM มุ่งเน้นไปที่โดเมนธุรกิจ ORM ไม่ใช่โดเมนธุรกิจเว้นแต่คุณจะขายผลิตภัณฑ์ ORM
Andrew T Finnell

15

หมายเหตุ: ฉันไม่ใช่พนักงานของ Microsoft ความเห็นส่วนตัวอย่างสมบูรณ์ ความคิดมากมายมาจาก 5-7 ปีที่ผ่านมาในการใช้ทั้งโอเพนซอร์สและผู้ขายรายใหญ่ในฐานะนักพัฒนา

การปลูกพืชเชิงเดี่ยวเป็นสิ่งที่ดี: กฎส่วนบุคคลของฉันสำหรับ ASP.NET คือการกำหนดค่าตามความชอบให้กับ Microsoft และอย่าเลือกรหัสบุคคลที่สาม (โอเพ่นซอร์สหรือไม่) เว้นแต่จะไม่มีตัวเลือกอื่น การปลูกพืชเชิงเดี่ยวนั้นให้ผลตอบแทนเพราะคุณถูกดำเนินการโดยผู้ค้ารายใหญ่และจำนวนผู้ใช้ที่ทำซ้ำประสบการณ์เดียวกันนั้นมีขนาดใหญ่พอที่จะได้รับความช่วยเหลือและค้นหาวิธีแก้ปัญหา

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

20 องศาของการแยก: ทุกครั้งที่คุณยอมรับไลบรารี่ใหม่จะแยกคุณออกจากกระแสหลักเลื่อนคุณไปสู่กรณีขอบจำนวนน้อย หลังจากมี 20 ขั้นตอนเช่นการเลือกการกำหนดค่าความปลอดภัยโดยใช้รุ่นเฉพาะเฟรมเวิร์กปลั๊กอิน ฯลฯ โซลูชันของคุณจะกลายเป็นการผสมผสานรายละเอียดที่เป็นหนึ่งเดียวทั่วโลก Googling จะช่วยในการพิสูจน์ว่าปัญหาเกิดขึ้นได้ยากเพียงใด มันเป็นปัญหาการแสดงตัวเองเสมอ ไม่เคยเกี่ยวข้องกับธุรกิจจริง

คุณภาพมาจากการโฟกัสเงินไม่เกี่ยวข้อง: ไม่มีความโดดเด่นของซอฟต์แวร์เชิงพาณิชย์เทียบกับโอเพ่นซอร์ส ชุมชนผู้พัฒนาระบบทั้งหมดเป็นเพียงชุมชนเดียวเหมือนที่เคยเป็นมา ผู้ค้ารายใหญ่จะได้รับประโยชน์จากการเพิ่มอายุรหัสให้นานขึ้นในสภาพที่ดีขึ้นโดยมีผู้ชมที่กว้างกว่ากลุ่มโอเพ่นซอร์ส

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


3
+1: ฉันไม่สามารถพูดได้ว่าฉันเห็นด้วยอย่างสิ้นเชิง แต่ก็เถียงกันดีเกินไปที่จะไม่ .....
mattnz

14
"ไม่มีสิ่งใดเป็นงบประมาณโครงการโอเพ่นซอร์ส" เป็นเรื่องจริง Google มีงบประมาณสำหรับโครงการโอเพนซอร์ซและ Red Hat Inc. ไม่สามารถดำเนินธุรกิจได้หากพวกเขามีโค้ดไม่เพียงพอในซอฟต์แวร์ แล้วเรื่องนี้ล่ะ microsoft.com/opensource/directory.aspx
ONOZ

14
ฉันไม่เห็นด้วยกับคำเดียวที่คุณพูด
Avio

11
จุดเหล่านี้ใช้กับโครงการที่เป็นแหล่งปิดอย่างเท่าเทียมกัน การเพิ่มไลบรารี / เฟรมเวิร์กซอร์สแบบปิดลงเพื่อเพิ่มความหลากหลาย เทคโนโลยีเก่าที่เป็นกรรมสิทธิ์ถูกทอดทิ้งหากไม่ได้รับเงิน คุณยังสามารถกำหนดค่า IIS ให้เป็นผีเสื้อเฉพาะของตนเอง ความคิดเห็นที่มีคุณภาพจะไม่สนใจว่าโครงการโอเพ่นซอร์สอาจใหญ่กว่าผู้ขายบางราย และโลกธุรกิจเป็นเรื่องการเมืองอย่างมากโดยเฉพาะกับ Microsoft
Philip

3
ฉันมีประสบการณ์ตรงข้าม เราย้าย SQLite ไปยังอุปกรณ์และสามารถรับการสนับสนุนโดยตรงจากคนที่เขียนส่วนใหญ่ ไม่มีทางที่เราจะได้รับระดับการบริการจาก บริษัท ที่มาปิด โครงการโอเพ่นซอร์สบางโครงการมีความสมบูรณ์ยิ่งขึ้นและมีการสนับสนุนที่ดีกว่าโครงการโอเพ่นซอร์สบางโครงการ ฉันสามารถบอกเล่าเรื่องราวเกี่ยวกับการใช้คอมไพเลอร์ "มาตรฐานอุตสาหกรรม" ของ Microsoft C ++ สำหรับ OS / 2 และวิธีการสนับสนุนที่เกิดขึ้นเมื่อ Microsoft ตัดสินใจที่จะประกันตัวใน OS / 2
Gort the Robot

7

ฉันทำงานหลายโครงการที่ประสบความสำเร็จสำหรับ บริษัท ขนาดใหญ่ที่ใช้ซอฟต์แวร์โอเพนซอร์สจำนวนมาก โดยเฉพาะอย่างยิ่งฉันใช้ Curl, SQLite และ Webkit ทั้งหมดสำหรับ บริษัท ขนาดใหญ่มากในโครงการที่ประสบความสำเร็จซึ่งส่งไปยังผู้ใช้ปลายทาง อย่างที่คนอื่นพูดกันมันเป็นเพียงเรื่องของการระมัดระวังเกี่ยวกับใบอนุญาตและการมีทนายความควรมองพวกเขา

มีใบอนุญาตโอเพนซอร์สหลายร้อยใบ แต่โดยทั่วไปแล้วพวกเขาแบ่งออกเป็นสองประเภทคือสไตล์ BSD และสไตล์ GPL สิทธิ์การใช้งานสไตล์ BSD ไม่ต้องการให้คุณเปิดซอร์สโค้ดของคุณเองและโดยทั่วไปจะมีคำสั่งระบุแหล่งที่มาบางประเภท สิทธิ์การใช้งานสไตล์ GPL ทำให้คุณต้องเปิดซอร์สโค้ดของคุณเอง บริษัท ส่วนใหญ่ (รวมถึงเหมือง) โดยทั่วไปมองด้วยความสงสัยดังนั้นคุณจะต้องหลีกเลี่ยงสไตล์ GPL Dapper ดูเหมือนจะใช้ใบอนุญาต Apache ซึ่งเป็นรูปแบบ BSD ค้นหาว่าข้อกำหนดสิทธิการใช้งานทั่วไปนั้นคืออะไรก่อนเริ่มเข้ารหัส

นอกจากนี้ยังมี LGPL ซึ่งเป็นกรณีชายแดนที่น่าสนใจซึ่งคุณสามารถใช้สิ่งเหล่านี้ได้ในขณะที่ไม่เปิดรหัสของคุณเองหากคุณ จำกัด การเข้าถึงขอบเขตแบบไบนารี (เช่นเข้าถึงไลบรารีเป็นไลบรารีแบบไดนามิกเท่านั้น) การใช้ห้องสมุด LGPL ทำได้มากคุณต้องระวังให้มากขึ้น

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

คุณอาจต้องการหลีกเลี่ยงโครงการที่มีขนาดเล็กหรือไม่สมบูรณ์ การดึงดูดบางสิ่งบางอย่างที่ดูเหมือนว่าจะตอบสนองความต้องการของคุณ แต่ถ้าพวกเขาเป็นสิ่งที่รวบรวมโดยคนสองคนไม่เคยเสร็จสมบูรณ์และไม่ได้รับการสนับสนุนมันอาจไม่คุ้มค่ากับความพยายาม (ยกเว้นว่าคุณยินดีที่จะทำงานกับรหัสโดยตรง)


7

คุณไม่เคยมีส่วนประกอบที่เป็นกรรมสิทธิ์มาก่อนหรือไม่? ฉันพบข้อบกพร่องมากมายในซอฟต์แวร์จาก บริษัท ทั้งใหญ่และเล็ก ปัญหานี้ไม่ได้มีปัญหากับโอเพนซอร์สต่อ se แต่มันเป็นเรื่องเกี่ยวกับการกำหนดโครงการ

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

คุณต้องรับทราบว่าคุณมีความเสี่ยงมากขึ้นหากคุณตัดสินใจที่จะใช้โครงการที่ยังไม่บรรลุนิติภาวะหรือโครงการที่มีการสนับสนุนที่ จำกัด ดังนั้นคุณต้องพิจารณาว่าแผนลดความเสี่ยงของคุณคืออะไร คุณอาจทำการทดสอบเพิ่มเติมเกี่ยวกับซอฟต์แวร์ของ บริษัท อื่นตัวอย่างเช่น


6

สันนิษฐานว่าประเด็นการออกใบอนุญาตจะไม่มีปัญหาที่นี่: ต้องดูอย่างรวดเร็วที่ Dapper ผมสังเกตเห็นว่ามีเพียง2,255 สายของดีเอกสารอ่านรหัส นั่นคือ

  • ใหญ่พอที่คุณจะลงทุนได้หลายวันหรือหลายสัปดาห์เพื่อสร้างรหัสของคุณภาพที่เทียบเท่ากันได้
  • มีขนาดเล็กพอที่คุณสามารถเข้าใจสิ่งที่มันทำและแก้ไขข้อบกพร่องใด ๆ ในรหัสนั้นหากปรากฏในการผลิต

หากคุณกำลังจะเขียนบางอย่างเช่นนั้นด้วยตัวคุณเองและ "บูรณาการวงล้อใหม่" คุณมีความเสี่ยงสูงกว่าที่รหัสของคุณจะแสดงข้อบกพร่องในการผลิตและคุณจะ "ยากที่จะแก้ไขปัญหา"

อย่างไรก็ตามสิ่งที่คุณต้องทำที่นี่ถ้าคุณแนะนำโอเพ่นซอร์สในโครงการของคุณคุณต้องรับผิดชอบอย่างเต็มที่สำหรับโค้ดนั้นเหมือนกับที่คุณเขียนเอง ตรวจสอบให้แน่ใจว่ารหัสอยู่ในสถานะที่คุณสามารถบำรุงรักษาได้หากจำเป็น อย่าโทษ "ผู้แต่ง" ของรหัสนั้นหากสิ่งที่ใช้ไม่ได้ตามที่คาดไว้

ในโครงการหนึ่งของเราเราก็แนะนำส่วนประกอบโอเพ่นซอร์สบางส่วนตั้งแต่ขนาดเล็กไปจนถึงไลบรารีที่มีโค้ดประมาณ 20K ถึง 30K เรามีเสมอที่จะทำให้การเปลี่ยนแปลงบางอย่างแก้ไขข้อบกพร่องบางอย่างบางสิ่งบางอย่าง Downsize ฯลฯ แต่นั่นก็ ok เนื่องจากเราคาดหวังว่า แม้แต่เวลาสำหรับการแก้ไขข้อบกพร่องรวมอยู่ด้วยการใช้โอเพ่นซอร์สช่วยเราได้มาก

สิ่งหนึ่งที่ควรคำนึงถึงที่นี่: ในกรณีของคุณคุณพูดถึงว่ามีทางเลือกที่ยอมรับกันอย่างกว้างขวางจากผู้จำหน่ายรายใหญ่ที่มีอยู่ (MS Entity Framework ซึ่งคุณไม่ต้องจ่ายค่าธรรมเนียมใบอนุญาตเพิ่มเติม!) คุณไม่ต้องการใช้เนื่องจากข้อควรพิจารณาด้านประสิทธิภาพ ฉันแนะนำอย่างจริงจังว่าอย่าปล่อยให้การแสดงเป็นจุดเดียวหรือหลักที่ควรพิจารณา คำถามที่คุณควรถามที่นี่มี Dapper ฟังก์ชั่นทั้งหมดที่คุณต้องการในขณะนี้และสำหรับอายุการใช้งานที่คาดหวังของซอฟต์แวร์ของคุณหรือไม่ หรือคุณสามารถคาดการณ์ได้ว่าคุณจะถึงขีด จำกัด ของ Dapper อย่างรวดเร็วและคุณจะต้องเพิ่มฟังก์ชันการทำงานที่ขาดหายไปจำนวนมากสิ่งที่คุณอาจจะไม่ต้องทำถ้าคุณตัดสินใจใช้ EF ในตอนแรก หากเป็นกรณีหลังฉันจะแนะนำไม่ให้ใช้ Dapper ถามตัวคุณเองด้วย: EF ไม่เร็วพอสำหรับการสมัครของคุณหรือไม่


1
+1 สำหรับปัญหาการออกใบอนุญาต ตรวจสอบอย่างรอบคอบว่าการใช้องค์ประกอบโอเพนซอร์ซบางอย่างจะไม่บังคับให้คุณเปิดซอร์สโค้ดของคุณเองเช่นกัน ฉันไม่เชื่อว่านี่จะเป็นกรณีของโอเพ่นซอร์สส่วนใหญ่และหากคุณเพียงแค่ใช้มันเพื่อจัดทำหรือโฮสต์โค้ดของคุณจะมีให้ใช้มากกว่า แต่ก็คุ้มค่าที่จะตรวจสอบ
Lunivore

แม้ว่าประสิทธิภาพจะลดความกังวลลง แต่ EF ก็ให้การควบคุมฉันน้อยลง การแนะนำแคชนั้นยากขึ้นเล็กน้อยถ้าจำเป็นตามถนน Dapper จะง่ายต่อการปรับให้เข้ากับโซลูชันที่กำหนดเองมากขึ้นนอกเหนือจากการผลักดันความจำเป็นในการแคชไปตามถนนในตอนแรก
นายเจฟเฟอร์สัน

ในทางกลับกันการต้องการโซลูชันที่กำหนดเองผ่านทาง EF ฟังดูเหมือน NIHS สคีมาข้อมูลของฉันค่อนข้างซับซ้อนกับความสัมพันธ์จำนวนมาก (คีย์ต่างประเทศ) และมาถึงจุดที่โซลูชันแบบกำหนดเองของฉันจัดการความสัมพันธ์เหล่านั้นรวมถึง EF จะออกนอกกรอบแน่นอนต้องใช้เวลาสักครู่
นายเจฟเฟอร์สัน

@ Mr.Jefferson: จริงจังฉันไม่สามารถให้คำแนะนำที่ดีแก่คุณได้ว่าอะไรคือทางออกที่ดีกว่าในกรณีของคุณนั่นคือสิ่งที่คุณต้องทำด้วยตัวเอง ฉันแค่พยายามให้คำแนะนำแก่คุณว่าจะต้องพิจารณาอะไรบ้าง
Doc Brown

+1 คุณได้รับคะแนนที่ยอดเยี่ยมจากการโพสต์นี้ @ Mr.Jefferson: ฉันเคยใช้ Entity Framework มาระยะหนึ่งแล้วและประสบความสำเร็จอย่างมากในการจัดการประสิทธิภาพด้วยการแคชโฆษณาแบบเฉพาะกิจบนที่เก็บเฉพาะหลังจากที่ค้นหาว่าคอขวดอยู่ที่ไหน นอกจากนี้ผลิตภัณฑ์ของเราค่อนข้างซับซ้อน แต่ฉันยังไม่ต้องใช้คำสั่ง SQL ในการเขียน ฉันรู้สึกว่า EF ให้การควบคุมมากมายแก่ฉัน
StriplingWarrior

2

เท่าที่ฉันเห็นมันเป็นการกระทำที่สมดุล

หากคุณทำให้ตัวเองต้องพึ่งพาผู้ขายก็มั่นใจได้ว่าการสนับสนุนจะหายไปในไม่ช้า

  • เนื่องจากพวกเขามีโปรแกรมเมอร์ที่ต้องจ่ายเงินดังนั้นพวกเขาจึงต้องสร้างเวอร์ชั่นใหม่และทำให้แน่ใจว่าโปรแกรมเก่านั้นเป็นไปไม่ได้ที่จะได้รับและไม่ทำงานอีกต่อไป (บนแพลตฟอร์มใหม่) ดังนั้นคนใหม่จะมีตลาด

  • หากพวกเขาไม่สามารถขายพอที่จะพิสูจน์รูปแบบธุรกิจพวกเขาส่งมันออกจาก บริษัท A ไปยัง บริษัท B ถึง C ซึ่งแต่ละอย่างเปลี่ยนไปมากพออีกครั้งคุณไม่สามารถใช้รูปแบบใหม่โดยไม่ต้อง reprogramming และคุณสามารถ ' ไม่ได้รับของเก่าที่ใช้งานได้

  • พวกเขาตัดสินใจว่าจะไม่สนับสนุนอีกต่อไปเพราะปัญหามากเกินไปและไม่มีเงินอยู่ เงินทั้งหมดอยู่ในแอพใหม่

ดังนั้นหากคุณต้องการสร้างบางสิ่งที่ไม่จำเป็นต้องเขียนใหม่อย่างต่อเนื่องทุกสองสามปีโอเพนซอร์สสามารถเป็นเพื่อนของคุณได้


1

ฉันคิดว่ามันฉลาดถ้ามีความขยันพอสมควรและดูเหมือนว่าคุณทำการบ้านมาแล้วเกี่ยวกับประวัติและกิจกรรมของโครงการหนึ่ง ความสามารถในการขยาย / เพิ่มฟีเจอร์ต่าง ๆ ในซอร์สโค้ดก็เป็นโปรที่ยิ่งใหญ่เช่นกัน ด้วยการทดสอบที่เพียงพอคุณสามารถลดความเสี่ยงในด้านแย้ง เป็นการยากที่จะเข้าใจการอ้างอิงทั้งหมดในรหัสของคุณอย่างสมบูรณ์ แต่อย่างน้อยในกรณีนี้คุณจะสามารถดีบักและดูรหัสได้อย่างสมบูรณ์หากจำเป็น

ถามผู้บริหารว่าทำไมมันถึงล้มเหลวมาก่อนมีความขยันเพียงพอ


ฉันไม่รู้อะไรเลยเกี่ยวกับสิ่งที่เกิดขึ้น ก่อนที่ฉันจะมาถึงที่นี่
นายเจฟเฟอร์สัน

0

jquery มีตัวเลือกในการใช้ใบอนุญาต MIT ดังนั้นเว็บไซต์การค้าและรัฐบาลหลายแห่งก็ใช้ jquery เช่นกัน เว็บไซต์ของ Microsoft ใช้ jquery ด้วย! ดังนั้นความกังวลคือการออกใบอนุญาต หลีกเลี่ยงการใช้ GPL / LGPL ก็เพียงพอแล้ว

"นานแค่ไหนที่จะได้รับการแก้ไขข้อบกพร่องรายงาน?" หลังจากรายงานข้อผิดพลาดมันอาจได้รับการแก้ไขภายในไม่กี่นาทีชั่วโมงหรือวัน สำหรับสถานการณ์เร่งด่วนพนักงานอาจ "ดึงคอมไพล์" เพื่อรับแหล่งและรวบรวมด้วยตนเอง เขาเพียงแค่รายงานรุ่นเช่น "v1.2.3-101-gd62fdae" ต่อฝ่ายจัดการซึ่งตรวจสอบย้อนกลับได้


0

โอเพ่นซอร์สนั้นเกี่ยวกับข้อกฎหมายไม่ใช่คุณภาพของรหัส มีผลิตภัณฑ์โอเพนซอร์ซที่ดีและไม่ดีเหมือนกับที่มีผลิตภัณฑ์โอเพนซอร์ซที่ดีและไม่ดี ฉันเชื่อว่าภาวะที่กลืนไม่เข้าคายไม่ออกของคุณคือการใช้โครงการที่พัฒนาโดยชุมชนของอาสาสมัคร


-1

คุณแน่ใจหรือว่าปัญหาการจัดการเป็นปัญหาทางเทคนิค

ฉันพูดแบบนี้เนื่องจากการผสมผสานระบบปฏิบัติการและกิจกรรมเชิงพาณิชย์เป็นเขตเหมืองอย่างถูกกฎหมายและผู้จัดการมากกว่าหนึ่งคนมี "โปรดอธิบาย" จากทีมกฎหมาย / ซีอีโอหรือแย่กว่านั้นจากองค์กรอื่น ผู้จัดการส่วนใหญ่ที่ฉันรู้จักแม้จะเป็นผู้ที่ใช้งานซอฟต์แวร์ OS อย่างระมัดระวังก็ตาม (อย่างถูกต้อง) ระมัดระวังอย่างยิ่งที่จะเข้าใจสถานการณ์ทางกฎหมายที่พวกเขาเปิดเผยอย่างสมบูรณ์ หากคุณนำซอฟต์แวร์ OS มาใช้และทำการเปลี่ยนแปลงคุณมีหน้าที่ต้องส่งคืนการเปลี่ยนแปลงเหล่านั้นให้กับชุมชน ในบางกรณีภาระหน้าที่นี้ถูกกฎหมายในทางศีลธรรมอื่น ๆ ในสิทธิ์ใช้งานระบบปฏิบัติการบางอย่างทุกสิ่งที่คุณทำจะกลายเป็นระบบปฏิบัติการเพียงแค่เชื่อมโยงไปยังพวกเขา

จากมุมมองทางเทคนิคเป็นเพียงการตัดสินใจระหว่างผลิตภัณฑ์คู่แข่ง - ถามคำถามพื้นฐาน - คุณสามารถรับการสนับสนุนที่คุณต้องการสำหรับแพ็คเกจที่คุณเลือกได้หรือไม่นานแค่ไหนที่จะได้รับการแก้ไขข้อบกพร่องที่รายงาน นักพัฒนาต่อปีหรืออย่างน้อยหนึ่งครั้งระบบปฏิบัติการมีจำนวน 0 ในคอลัมน์ $ แต่มักจะมีช่องว่างในที่อื่น ๆ - มีเพียงคุณและหัวหน้าของคุณเท่านั้นที่สามารถตัดสินใจได้ว่าน้ำหนักของช่องว่างนั้นเท่ากับ 0 หรือไม่

และอีกจุดหนึ่งที่ควรจดจำ - "ไม่มีใครถูกไล่ออกจากการซื้อ IBM" (เช่นฝ่ายบริหารพูดสำหรับ "ถ้าคุณใช้เงินเป็นจำนวนมากจะต้องเป็นผลิตภัณฑ์ที่ดีกว่าผลิตภัณฑ์ที่ไม่มีค่าใช้จ่าย"


5
น่าแปลกใจที่ IBM เป็นผู้ขายซอฟต์แวร์โอเพ่นซอร์สที่ใหญ่ที่สุดในโลก เซิร์ฟเวอร์ Apache http, Eclipse และอื่น ๆ
James Anderson

7
การขาย OSS ไม่ผิดกฎหมาย ทำไมถึงเป็นเช่นนั้น?
tdammers

1
IBMS httpServer เป็น apache แท้ๆมันเพิ่งมาพร้อมกับข้อตกลงการสนับสนุน
James Anderson

2
สิ่งต่าง ๆ กำลังเปลี่ยนแปลง ตอนนี้ผู้บริหารเริ่มคิดว่าถ้าคุณทำให้ บริษัท จ่ายเงินสำหรับส่วนประกอบที่ บริษัท อื่นมีให้ฟรีคุณก็เป็นคนโง่
Avio

2
"คอลัมน์อื่น ๆ " มักจะว่างเปล่าสำหรับโอเพนซอร์ส คุณสามารถรับการสนับสนุนจากที่ปรึกษาหรือผู้จัดจำหน่ายหรือใครก็ได้และคุณสามารถสนับสนุนตัวเองได้ คอลัมน์เพิ่มเติมมักจะว่างเปล่าสำหรับซอฟต์แวร์เชิงพาณิชย์เนื่องจากคุณไม่ทราบคุณภาพของการสนับสนุนล่วงหน้าและไม่ค่อยมีประโยชน์เท่าที่คุณต้องการ
Jan Hudec
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.