GitHub лицензийг хэрхэн сонгох, зөв сонголт хийх нь яагаад чухал вэ? GitHub бол мэдээллийн технологийн төслүүдийг хамтран хөгжүүлэх, дараа нь байршуулах хамгийн том үйлчилгээ юм. Энэхүү вэб үйлчилгээний тусламжтайгаар хязгааргүй тооны хүмүүс нэгэн зэрэг төсөл дээр ажиллахаас гадна дэлхийн хаанаас ч ажиллах боломжтой. GitHub нь мөн менежмент эсвэл хяналтын системтэй бөгөөд энэ нь хөгжүүлэгчдийн цаг хугацааны явцад хийсэн бүх өөрчлөлтийг харах, хянах боломжийг олгодог бөгөөд энэ нь өөрчлөлтөөс өмнө гарсан төлөв рүү буцах боломжийг олгодог.
Гэхдээ энгийнээр хэлбэл, GitHub бол программистууд болон хөгжүүлэгчдэд зориулсан нийгмийн сүлжээ гэж нэрлэгддэг бөгөөд эндээс та бусад хөгжүүлэгчдийн кодыг олж, дараа нь дадлага хийх боломжтой. Та мөн өөрийн портфолио GitHub дээр хадгалах боломжтой. Ерөнхийдөө GitHub бол шинэхэн хөгжүүлэгчид болон туршлагатай програмистуудад тохиромжтой үйлчилгээ юм. Гэсэн хэдий ч, энэ үйлчилгээний хэрэглэгчдэд лиценз сонгох талаар зарим асуулт гарч ирдэг, учир нь тэдний сонголт маш олон янз байдаг.
GitHub лиценз гэж юу вэ
Тусгай зөвшөөрөл гэдэг нь төрийн хэлбэрээр байгуулагдсан тусгай баримт бичиг бөгөөд тодорхой төрлийн бизнес эрхлэх боломжийг олгодог бөгөөд энэ нь төрийн зүгээс онцгой анхаарал шаарддаг. Гэхдээ ихэнхдээ практикт зөвхөн товчилсон лицензийн гэрээ эсвэл хувийн хуулийн тусгай зөвшөөрөл олгохыг заасан гэрээг ашигладаг. Ер нь тусгай зөвшөөрөл нь зөвхөн нэг л зорилготой байдаг ч хамгийн чухал зорилго нь лиценз эзэмшигч болон лиценз эзэмшигчийн хооронд хүлээх үүрэг, эрхийн гэрээ юм. Эдгээр үүрэг, эрх нь юу ч байж болно, гэхдээ зөвхөн хуулийн хүрээнд. Сонирхолтой жишээ бол лиценз эзэмшигчийн бүтээлийг ашиглахдаа зохиогчийн эрх эзэмшигчийн нэрийг шаардаж болно. Эсвэл жишээ нь хуулбарлах ажлыг зөвшөөрөх, гэхдээ түүнд ямар нэгэн өөрчлөлт оруулахыг огт хориглоно. Эсвэл тухайн бүтээлийг анхныхтай яг ижил нөхцөлөөр гаргах гэх мэт шаардлагуудыг гаргаж ирэхийн тулд янз бүрийн нөхцөл тавьсан жишээ нэлээд олон бий. [гарчиг id=”хавсралт_12368″ align=”aligncenter” өргөн=”780″]
Apache лицензүүдийн нэг жишээ[/caption]
Гэхдээ лиценз нь зөвхөн лиценз эзэмшигчийн төдийгүй лиценз эзэмшигчийн эрхийг хамгаалдаг гэдгийг мартаж болохгүй. Эндээс та уг бүтээлийг ашиглах бүх нөхцлийг тодорхой харж, уншиж болох тул лиценз олгогч гэнэт түүний ажлыг ашиглахдаа ямар нэгэн суутгал эсвэл бусад нөхөн төлбөр шаардахаас айх шаардлагагүй болно.
Хэрэв та уг бүтээлтэй холбоотой лицензийг ашиглахаас татгалзвал тухайн улсад мөрдөгдөж буй хууль эрх зүйн дүрмийн дагуу зохиогчийн эрх хэрэгжинэ. Энгийнээр хэлэхэд, лиценз байхгүй байгаа нь бусад зохиогчид энэ төслийг хүссэнээрээ ашиглах боломжтой гэсэн үг биш юм. Бүх зүйл яг эсрэгээрээ байдаг, учир нь ямар ч тусгай зөвшөөрөлгүйгээр програмист нь хуулиар олгогдсон эрхээсээ ямар ч тохиолдолд татгалздаггүй. Мөн лиценз нь бүх эрх, үүргийг зохицуулдаг гэдгийг үргэлж санаж байх нь чухал. Энэ нь тухайн бүтээлийн эзэмшигчийг хэрэглэгчийн хүлээлтээс хамгаалах, ямар нэгэн баталгаат зүйлээс хамгаалах зорилготой юм. Эцсийн эцэст хэн ч өөрсдийнхөө кодыг ямар нэгэн байдлаар шүүхэд өгөхийг хүсдэггүй.
Зохиогчийн эрх гэж юу вэ
Зохиогчийн эрх нь тухайн хүнд оюуны үйл ажиллагааны үр дүнд өвөрмөц, гэхдээ нэгэн зэрэг хэрэгтэй бүтээл туурвих үед л гарч ирдэг, жишээлбэл, та ижил програм бичих боломжтой. Дээрх бүх зүйлийг хийсний дараа тухайн хүн зохиогч болж, одоо энэ бүтээлийн бүх зохиогчийн эрхийг бүрэн эзэмшдэг. Зохиогчийн эрх нь өмчийн болон эд хөрөнгийн бус гэдгийг бас хэлэх хэрэгтэй. Тэдний ялгаа нь өмчлөх эрхийг хэнд ч шилжүүлж болох боловч эд хөрөнгийн бус эрх нь ямар ч нөхцөлд зөвхөн зохиогчид үлддэг. Эцсийн эцэст зохиолч байх нь бусдад шилжүүлж болохгүй, салгах боломжгүй эрх юм.
Нээлттэй эхийн лиценз гэж юу вэ?
Энэ нь шинэхэн хөгжүүлэгчид болон програмистуудын дунд нэлээд түгээмэл асуулт юм, учир нь тэд яагаад лицензийг төсөлдөө хавсаргах ёстойг ойлгодоггүй, учир нь үүнгүйгээр төсөл чимээгүйхэн оршин тогтнох боломжтой. Гэсэн хэдий ч, энэ нь бүхэлдээ үнэн биш юм, учир нь жишээлбэл, зарим шинэхэн хөгжүүлэгч нэлээд чухал бөгөөд хэрэгцээтэй код бичсэн боловч лицензээр хамгаалаагүй бол бусад хэрэглэгчид асуулт тавих болно. Яг үүнээс болоод үйлчлүүлэгчид түүн дээр ирээд энэ кодыг арилжааны зорилгоор ашиглахыг хүсэх үед код нь ямар ч лицензгүй байгааг хараад зүгээр л татгалздаг. Энэ нь компаниуд хууль, хуульчтай холбоотой асуудал шаардлагагүй тул тусгай зөвшөөрөлгүйгээр кодыг ашиглахгүй байгаатай холбоотой юм.
Тийм ч учраас хамгийн ашигтай, тохиромжтой төсөл ч хэзээ ч хэрэгжихгүй. Энэ кодыг авахыг хүссэн хөгжүүлэгч өөр хувилбар хайж, ашиглах эсвэл шинэхэн хөгжүүлэгчийн өмнө нь бичсэн кодыг бүрэн дахин бичих шаардлагатай болно. Тиймээс програмист зөв, хамгийн чухал нь тохирох лицензийг ашиглаж байгаа эсэхийг урьдчилан шалгах нь зүйтэй. GitHub-г 15 минутын дотор нэг видео хичээлээр судлах: https://youtu.be/JfpCicDUMKc
Тодорхой нөхцөлд ямар GitHub лиценз тохиромжтой вэ – хэрхэн сонгох вэ?
Лицензийг сонгох нь зөвхөн төслийн зорилго, хөгжүүлэгчийн хувийн сонголт, хүслээс хамаардаг тул энэ асуултад тодорхой хариулт өгөх боломжгүй юм. Таны харж байгаагаар GitHub дээр маш олон төрлийн лицензүүд байдаг бөгөөд хамгийн чухал нь бүгд үнэ төлбөргүй бөгөөд нийтийн эзэмшилд байдаг бөгөөд энэ нь програмист бүр
өөрийн төсөлд тохирох Нээлттэй эхийн лицензийг олох боломжтой гэсэн үг юм. Гэхдээ хамгийн чухал нь бид Нээлттэй эхийн лиценз нь лицензгүй код биш гэдгийг мартаж болохгүй. Бага зэрэг судалгаа хийснээр та бүх Нээлттэй эхийн лицензүүдийг цуглуулж, гурван том бүлэгт хувааж болно:
- Хүчтэй хамгаалдаг.
- Сул хамгаалалттай.
- Зөвшөөрөгдсөн.
хүчтэй хамгаалдаг
Хүчтэй хамгаалсан лицензүүд нь ихэвчлэн GPL-ийн хувилбарууд юм. Эдгээр лицензүүд нь аливаа код, төслийг хэрхэн ашиглах, аль хэдийн ашигласан эсэхээс үл хамааран төслийн лицензийг авахаас гадна эх кодыг задруулахыг шаарддаг.
Сул хамгаалалттай
Сул хамгаалалттай лиценз нь ихэвчлэн Lesser GPL-ийн хувилбарууд юм. Зөвшөөрөгдсөн лицензүүдээс гол ялгаа нь энд GPL лицензийн дагуу програмыг лицензлэх, мөн эх кодыг зайлшгүй өгөх шаардлагатай байгаа явдал юм. Үүний зэрэгцээ, хэрэв програмистын төсөлд номын сан байгаа бол, өөрөөр хэлбэл LGPL лицензийн дагуу статик холбоос эсвэл динамик холболт байгаа бол энэ программистын төслийн аль ч лицензтэй нийцтэй байх болно.
зөвшөөрөгдсөн
Нэлээд олон тооны зөвшөөрөгдсөн лицензүүд байдаг бөгөөд тэдгээрийн хамгийн алдартай лицензүүд нь MIT, Apache 2.0, BSD юм. Бага зэрэг өөрчлөлттэй бол эдгээр лицензүүд нь кодыг Нээлттэй эхийн төслүүд болон арилжааны зорилгоор ашиглахыг зөвшөөрдөг. Гэхдээ энэ тохиолдолд анхны програмын зохиогчийг зааж өгөх шаардлагатай гэдгийг санах нь чухал юм.
Бусад алдартай GitHub лицензүүд
Эдгээр гурван бүлгийн лицензээс гадна бусад лицензүүд байдаг, жишээлбэл, өөр нэг хамгийн ашигтай лиценз бол ангийн зам өргөтгөл бүхий GPLv2 юм. Энэхүү лицензийг Нээлттэй эхийн төсөл болон арилжааны төсөл, зорилгоор хоёуланг нь ашиглаж болно. Түүний хамгийн алдартай дүр төрх нь Oracle-д байдаг бөгөөд энэ нь нээлттэй эхийн төсөл, шийдлүүдийг лицензжүүлэхдээ ангийн замын өргөтгөлтэй GPLv2 ашигладаг. Жишээлбэл, ердийн GPL лицензүүд хэзээ ч байт кодтой харьцах боломжгүй тул энэ лиценз нь маш чухал бөгөөд ашигтай юм. Өөрөөр хэлбэл, тэдгээр нь эмхэтгэх, холбох үйл явцын тусгай тайлбартай байдаг бөгөөд энэ нь бусад тайлбарласан програмчлалын хэлүүдэд огт тохиромжгүй байдаг бөгөөд эдгээр хэлнүүдийн дунд хамгийн алдартай Java хэл байдаг. Ийм тохиолдолд ангиллын өргөтгөл бүхий GPLv2 тусгай лицензийг гаргасан. Эцсийн эцэст, энэ лицензийн дагуу гаргасан номын санг өөр ямар ч лицензээр арилжааны төсөл, зориулалтаар ашиглах боломжтой гэдгийг маш тодорхой бөгөөд тодорхой бичсэн байна.
GitHub лицензийн талаар өөр юу мэдэх хэрэгтэй вэ
?
Лиценз нэмж байна
Эцсийн лицензийг сонгосны дараа зөвхөн төслийн үндэс рүү нэмэхэд л үлддэг. Энэ үйлдлийг гүйцэтгэхийн тулд та сонгосон лицензийг төсөл үүсгэх явцад эсвэл өөр ямар ч үед төслийн үндэс дор нэмэх хэрэгтэй. Гэхдээ энэ үйлдлээр ч гэсэн GitHub вэб үйлчилгээ нь хэрэглэгчиддээ анхаарал тавьж чадсан бөгөөд тэд төслийн эхэн үед ч эцсийн лицензийг нэмэхэд нэлээд тохиромжтой арга замыг хийсэн.
Гэсэн хэдий ч харамсалтай нь энэ нь бүгд биш, учир нь хөгжүүлэгч эсвэл програмист нь өөрийн санаа эсвэл төсөлд ашигласан бүх хамаарлыг бүрэн шалгах шаардлагатай болдог. Өөрөөр хэлбэл, GPL лицензийн дагуу гаргасан хараат байдлын аль нэг нь ч гэсэн хөгжүүлэгчийн төсөл бүхэлдээ GPL-тэй нийцэх ёстой. Ийм баталгаажуулахын тулд өмнө нь боловсруулсан програм эсвэл хэрэгслийг ихэвчлэн ашигладаг. Жишээлбэл, энэ https://github.com/pivotal/LicenseFinder хэрэгсэл байдаг:
Лиценз олгох нь нэлээд цаг хугацаа шаардсан ажил боловч нэгэн зэрэг төсөл хэрэгжүүлэх эсвэл програмистын аливаа санааг хэрэгжүүлэхэд зайлшгүй шаардлагатай арга хэмжээ гэж бид хэлж чадна. Зөв лицензийг сонгохын тулд харамсалтай нь та маш их цаг зарцуулах хэрэгтэй, гэхдээ төсөл амжилттай болохын тулд энэ нь үнэ цэнэтэй юм. Аливаа програмыг бичихдээ лицензийн сонголтыг хамгийн түрүүнд тавих нь хамгийн сайн арга юм, учир нь үүнийг эхэнд нь хийснээр та бүх хүчин чармайлтаа зөв чиглэлд чиглүүлж, ихэнх хүмүүст амжилттай, тохиромжтой програм бичих боломжтой болно. хэрэглэгчид.