ฉันควรใช้ภาษาที่ฉันรู้สึกสบายใจที่สุดหรือ "มาตรฐาน" ของ บริษัท


18

ฉันจะพัฒนาเว็บไซต์อินทราเน็ตสำหรับโรงงานเฉพาะของฉันและมาตรฐาน บริษัท สำหรับการพัฒนาเว็บของเราคือIIS + ASP.Net + VB.Net + Microsoft SQL Server (โปรดทราบว่าเรามีพืชมากกว่า 10 แห่ง) โรงงานของฉันจะใช้ไซต์อินทราเน็ตเท่านั้นและฉันเป็นคนเดียวที่จะสนับสนุนไซต์นี้ ฉันมีความเชี่ยวชาญในการติดตั้งLAMPและฉันสามารถพัฒนาและแก้ไขปัญหาด้วยPHP ได้อย่างรวดเร็วกว่า ASP.Net แม้ว่า บริษัท "มาตรฐาน" คือ ASP.Net/VB.Net ส่วนใหญ่สิ่งที่ บริษัท ทำโดยรวมคือการซื้อซอฟต์แวร์ของบุคคลที่สาม (ซึ่งโดยปกติจะใช้Java ) และมากและฉันหมายถึงคนน้อยมากใน บริษัท ยังรู้VB6 , ASP.Net/VB.Net นับประสา

ที่ถูกกล่าวว่ามันเป็นการดีกว่าที่จะละเมิดมาตรฐานของ บริษัท และไปกับการตั้งค่าที่ฉันสามารถรองรับได้ดีกว่าหรือดีกว่าที่จะไปกับการตั้งค่าที่ บริษัท สามารถรองรับได้ดีกว่าถ้าฉันจะจากไป ใน บริษัท สามารถรองรับมาตรฐานของตัวเองได้หรือไม่?

ปัจจัยเพิ่มเติมที่ควรพิจารณาในกรณีส่วนบุคคลของฉัน:

  • อีกครั้งนี้เป็นเพียงโรงงานของฉันและฉันเป็นคนเดียวที่จะได้รับการสนับสนุนเว้นแต่ฉันจะออกจาก บริษัท แล้วการเปลี่ยนของฉันจะสนับสนุน ไม่ใช่คนอื่นใน บริษัท แล้ว
  • บริษัท มีการพัฒนาน้อยมากกับมาตรฐานของพวกเขาอยู่แล้ว
  • ซอฟต์แวร์แทบทุก บริษัท ที่มีอยู่นั้นใช้มาตรฐานของพวกเขา
  • ถ้าฉันเลือกมาตรฐาน บริษัท ดังนั้นฉันต้องใช้ Microsoft SQL เวอร์ชัน Express และระบบปฏิบัติการ Windows 7 จากการอ่านของฉันเวอร์ชัน Express นั้นใช้ได้สำหรับการใช้งานทางธุรกิจ แต่ขนาดฐานข้อมูลมี จำกัด

25
คำสำคัญนี่คือการละเมิด คุณได้เลือกคำที่ถูกต้องและเพียงแค่อ่านคำถามของคุณเองควรบอกคุณว่านี่เป็นความคิดที่ค่อนข้างโง่ พวกเขาเลือกมาตรฐานด้วยเหตุผล หากคุณไม่เห็นด้วยกับตัวเลือกนั้นคุณควรเพิ่มช่องทางให้เป็นทางการ
Joel Etherton

3
"ฉันหมายความว่ามีคนเพียงไม่กี่คนใน บริษัท ที่รู้ว่า VB6, ASP.Net/VB.Net นับประสา" ฉันไม่เห็นสิ่งที่เกี่ยวข้องกับอะไรเลย VB6 เป็นรหัสดั้งเดิมที่น่าเกลียด - ความจริงที่ว่าไม่มีใครรู้ว่ามันเป็นสิ่งที่ดีจริงๆ
DeadMG

1
@DeadMG ปัญหาไม่มีใครรู้ VB.Net เช่นกัน ดังนั้นฉันต้องใช้ภาษาอะไร พวกเขายังคงต้องจ้างคนอื่นมาสนับสนุนถ้าฉันจากไป
Drew Chapin

3
SQl Server Express รองรับฐานข้อมูลสูงสุด 4gb โดยปกติแล้วจะเพียงพอหากไม่มีฐานข้อมูลอื่นที่จำเป็นและคุณอาจต้องจัดการกับผู้คนที่เกี่ยวข้อง (คนไอทีผู้บังคับบัญชา ฯลฯ )
Holger

3
@Baboon ใช่แล้วมันไม่เหมือนเว็บไซต์อย่าง Facebook เลยจะใช้สิ่งที่ไม่เป็นไปได้เลย
SWeko

คำตอบ:


38

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

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

บริษัท มีการพัฒนาน้อยมากกับมาตรฐานของพวกเขาอยู่แล้ว

2 - เพียงเพราะเอกสารบางอย่างมีอยู่ไม่ได้หมายความว่ามันเป็นมาตรฐานหรือหมายถึงอะไรจริงๆ อาจหมายถึงว่ามีกลุ่มบุคคลที่มีอิทธิพลทางการเมืองที่สนับสนุนแนวทางนี้และอาจกลายเป็นว่ามีกลุ่มย่อยอื่น ๆ ที่ใช้แนวทางที่แตกต่างกัน

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

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

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


4
+1: คุณจะสนับสนุนสิ่งนี้ตราบเท่าที่คุณทำงานอยู่ที่นั่น อย่างไรก็ตามถ้าคุณออกไปคนอื่นจะได้รับการสนับสนุน
unholysampler

1
นี่เป็นคำตอบที่ดี แต่ฉันจะเพิ่มว่า OP ควรพูดคุยกับผู้จัดการของเขา / เธอเกี่ยวกับการแลกเปลี่ยนเพื่อดูว่าพวกเขาพิจารณามาตรฐานที่เข้มงวดหรือไม่และพวกเขาจะอนุมัติการใช้กองซ้อนอื่นสำหรับโครงการนี้หรือไม่
Mike Partridge

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

2
วิธีที่เร็วที่สุดที่จะติดอยู่ในตำแหน่งคือการทำให้ตัวเองไม่สามารถถูกแทนที่ได้ หากคุณไม่สามารถแทนที่ได้คุณจะไม่สามารถเลื่อนขั้น
Burhan Khalid

9

ที่ถูกกล่าวว่ามันเป็นการดีกว่าที่จะละเมิดมาตรฐานของ บริษัท และไปกับการตั้งค่าที่ฉันสามารถรองรับได้ดีกว่าหรือดีกว่าที่จะไปกับการตั้งค่าที่ บริษัท สามารถรองรับได้ดีกว่าถ้าฉันจะจากไป ใน บริษัท สามารถรองรับมาตรฐานของตัวเองได้หรือไม่?

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

ที่กล่าวว่าภาษาเป็นเครื่องมือและคุณต้องเลือกเครื่องมือที่เหมาะสมสำหรับงาน ทำให้พวกเขาเข้าใจว่าคุณไม่ต้องขันสกรูด้วยค้อน


สิ่งสำคัญที่ควรทราบว่าในบริบทของคำถาม (ให้ระดับของรายละเอียดที่พร้อมใช้งาน) ASP.NET และ PHP เป็นทั้งเครื่องมือที่เหมาะสมสำหรับงานซึ่งทั้งสองเป็นแพลตฟอร์มที่มีความสามารถมาก
Murph

1
ASP.NET มีความสามารถมากกว่าเนื้อหาเพียงว่า op รู้ php ดีกว่า
เควิน

1
@ เควินเหตุผลเดียวที่ฉันสามารถยืนยันได้ว่า ASP.Net มีความสามารถมากกว่า PHP คือมันทำงานร่วมกับการรักษาความปลอดภัย AD / Windows ได้ดีขึ้นแม้ว่ามันจะเป็นไปได้ที่จะรวม PHP กับการรักษาความปลอดภัย AD / Windows นอกเหนือจากนั้นฉันไม่เห็นข้อดีของ ASP.Net ผ่านทาง PHP
Drew Chapin

ด้วยการยอมรับของคุณเองคุณจะรู้ว่า php ดีขึ้นมากดังนั้นจึงไม่น่าแปลกใจที่คุณจะพูดเช่นนั้น
Kevin

8

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

  1. เนื่องจากคุณเลือกที่จะไม่ปฏิบัติตามมาตรฐาน บริษัท แสดงว่าคุณไม่เหมาะกับบทบาทระดับสูงอย่างยิ่งเนื่องจากคุณไม่สามารถทำตามคำแนะนำง่ายๆ
  2. เนื่องจากคุณเลือกที่จะไม่ปฏิบัติตามมาตรฐานของ บริษัท มันจะเป็นปัญหาของคุณที่ไม่มีใครใน บริษัท สามารถรองรับรหัสของคุณได้

หากคุณเลือกที่จะใช้มาตรฐานมันจะไม่เป็นความรับผิดชอบของคุณในการรักษาผลิตภัณฑ์เมื่อ (หาก) โอกาสในการโปรโมตหรือมีโครงการอื่นเกิดขึ้น

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


+1 สำหรับย่อหน้าสุดท้าย - โดยเฉพาะอย่างยิ่งในแง่ของความสามารถของแพลตฟอร์มคุณไม่สามารถสร้างกรณีสำหรับการเลือก PHP ผ่าน ASP.NET ได้จริง อาจจะมีข้อโต้แย้งสำหรับการเปลี่ยนมาตรฐานขึ้นอยู่กับมีคุณลักษณะของทีม dev ...
Murph

5

บริษัท มีมาตรฐานด้วยเหตุผลหากมีมาตรฐานที่ระบุไว้อย่างเป็นทางการซึ่งระบุว่าใช้ x ดังนั้นคุณต้องพิสูจน์ว่า y

นี่ไม่ได้หมายความว่าคุณไม่สามารถใช้ y ได้หมายความว่าคุณควรเข้าใจเหตุผลที่อยู่เบื้องหลังมาตรฐานและได้รับการอนุมัติก่อนที่จะละเมิด

บางทีหลังจากที่คุณเข้าใจว่าทำไมคุณไม่ต้องการละเมิดอีกต่อไปบางทีคุณอาจเห็นว่าจำเป็นต้องเปลี่ยนหรือทำให้เป็นเศษซากหรือไม่สามารถใช้งานได้ในกรณีนี้เพื่อให้การใช้ y ไม่ใช่ปัญหา

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


1
มาตรฐานของ บริษัท บางครั้งเกี่ยวข้องกับเหตุผลทางการตลาดแทนการพิจารณาประสิทธิภาพหรือทางเทคนิค
มิสเตอร์สมิ ธ

@Mister Smith ถึงอย่างนั้นคุณยังต้องพูดคุยกับผู้จัดการของคุณหรือใครก็ตามที่มีอำนาจตัดสินใจเพื่อยืนยันเหตุผลเหล่านั้น ดูคำตอบของฉันในคำถามนี้
Mike Cellini

1
@MisterSmith: เหตุผลทางการตลาดที่ถูกต้องมีความสำคัญพอ ๆ กันถ้าไม่มากไปกว่าการพิจารณาทางเทคนิคส่วนใหญ่ หากคุณไม่ทราบเหตุผลคุณไม่ทราบเหตุผลที่ถูกต้อง
jmoreno

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

@MisterSmith: มันไม่ได้เป็นไปตามมาตรฐานอย่างสุ่มสี่สุ่มห้า แต่ก็เป็นไปตามมาตรฐานของ บริษัท มีความแตกต่าง และถ้าไม่มีใครใส่ใจก็ควรง่ายพอที่จะได้รับอนุญาตให้ละเมิดหรือเปลี่ยนแปลงมาตรฐาน
jmoreno

2

ทุกอย่างขึ้นอยู่กับว่าคุณจะถูกไล่ออกหรือไม่ หากคุณกำลังจะถูกไล่ออกอย่าทำเช่นนั้น หากคุณไม่ได้ถูกไล่ออกคุณก็ควรดำเนินการต่อไป


-1 นี่คือ imho คำแนะนำที่น่ากลัว คุณอาจไปบอกคนอื่นให้เขียนโค้ดที่น่าเกลียดไม่สามารถเข้าใจได้รหัสที่ไม่มีเอกสาร (หรือแย่กว่า: ผิด) เพื่อทำให้ตัวเองขาดไม่ได้ รู้ว่าถ้าคุณทำให้ตัวเองขาดไม่ได้คุณจะไม่สามารถก้าวไปข้างหน้าใน บริษัท ได้ แต่อย่าทำสิ่งที่คุณทำและรักษารหัส (เส็งเคร็ง) ของตัวเองสำหรับทุกวัย!
Konerak

@ Konerak ดีคุณพูดถูก ฉันไม่ได้จริงจังกับมัน ฉันจะแก้ไขคำถามของฉันเพื่อให้คุณมีความสุข
Mike Nakis

ขอโทษไมค์ฉันไม่ได้รับส่วนประชด;) ฉันดีใจที่เห็นคำตอบเกี่ยวกับที่ขาดไม่ได้เพราะมันทำให้ฉันมีโอกาสที่จะตอบสนองและผู้คนจะอ่านเกี่ยวกับเรื่องนี้
Konerak

1

ฉันคิดว่าคุณสามารถคาดหวังถึงปัญหามากมายที่อาจเกิดขึ้นจากสิ่งนี้และวางแผนรายละเอียดเกี่ยวกับการออกจาก บริษัท

ปัญหาหนึ่งที่อาจทำให้งานเป็นไปได้ถ้าคุณจากไปและฝ่ายทรัพยากรบุคคลต้องค้นหาสิ่งทดแทนของคุณ ให้พวกเขาพยายามอย่างแข็งขันที่จะเข้าใจสิ่งที่คุณทำและจ้างตามทักษะที่จำเป็นหรือเพียงแค่ดูเอกสารต้นฉบับที่ระบุนโยบายของ IIS / ASP.NET / etc และจ้างคนที่มีทักษะเหล่านั้นเพื่อรักษารหัส LAMP ของคุณ (ใน "เพราะมันบอกว่า" หลักการ) ฉันคิดว่าน่าจะเป็นไปได้มากกว่า

สิ่งที่ง่ายที่สุด (ในระยะยาว) คือการทำตามคำแนะนำของ fabianhjr และเปลี่ยนมาตรฐาน เปลี่ยนเป็นรวมทั้ง Microsoft และ LAMP หากทนต่อสวิตช์เต็ม


อันที่จริงการโพสต์อย่างเป็นทางการสำหรับงานของฉันไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรม / เว็บใด ๆ
Drew Chapin

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

1

ในกรณีนี้คุณต้องปฏิบัติตามมาตรฐาน หากมาตรฐานดูเหมือนจะไม่นำมาใช้คุณต้องพูดคุยกับผู้จัดการของคุณเกี่ยวกับการทำมันในภาษาอื่น

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

นอกเหนือจากภาษาที่คุณต้องพิจารณาการสนับสนุนภายในสำหรับเซิร์ฟเวอร์ LAMP ใครจะเป็นผู้ดูแล Apache แล้ว MySQL ล่ะ ซอฟต์แวร์ของ บริษัท ทำงานบนฐานข้อมูลอื่นหรือไม่ ผู้ดูแลระบบยินดีที่จะจัดการแพลตฟอร์มใหม่หรือไม่ แม้ว่าคุณจะวางแผนในการบริหารบริการเหล่านี้หน้าที่อาจตกไปอยู่กับคนอื่นในที่สุด หากคุณวางแผนที่จะดูแลบริการผู้ดูแลระบบเครือข่าย / เซิร์ฟเวอร์จะอนุญาตให้คุณทำเช่นนั้นหรือไม่?

การขยายขอบเขตของการแนะนำแพลตฟอร์มที่แตกต่างกันนั้นกว้างและลึก การไม่ปฏิบัติตามมาตรฐานอาจส่งผลกระทบต่อคนจำนวนมากนอกเหนือจากตัวคุณ แม้ว่าคุณจะมีความเชี่ยวชาญใน LAMP มากกว่า ASP.NET แต่การสร้างบนแพลตฟอร์มนั้นอาจทำให้ บริษัท ของคุณเสียค่าใช้จ่ายได้มากขึ้นในระยะยาว คีย์ที่นี่กำลังสื่อสารกับผู้จัดการของคุณและทำความเข้าใจกับผลกระทบของการตัดสินใจขั้นสุดท้าย

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