วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

9
มีเหตุผล "ของจริง" ที่ไม่ชอบการสืบทอดหลายครั้งหรือไม่
ฉันชอบความคิดที่ว่าจะมีหลายมรดกที่สนับสนุนในภาษา ส่วนใหญ่มักจะลืมมันโดยเจตนาและ "การแทนที่" ที่ควรจะเป็นอินเตอร์เฟส การเชื่อมต่อก็ไม่ได้ครอบคลุมการสืบทอดหลาย ๆ อันเหมือนกันทั้งหมดและข้อ จำกัด นี้บางครั้งอาจนำไปสู่รหัสสำเร็จรูปมากขึ้น เหตุผลพื้นฐานเดียวที่ฉันเคยได้ยินเรื่องนี้คือปัญหาเพชรกับชั้นเรียนพื้นฐาน ฉันไม่สามารถยอมรับได้ สำหรับฉันมันหลุดออกมามากมายเช่น "เอาละมันเป็นไปได้ที่จะพลาดมันดังนั้นมันจึงเป็นความคิดที่ไม่ดีโดยอัตโนมัติ" คุณสามารถทำอะไรผิดพลาดในภาษาการเขียนโปรแกรมและฉันหมายถึงอะไร ฉันไม่สามารถทำสิ่งนี้ได้อย่างจริงจังอย่างน้อยก็ไม่ใช่โดยไม่ต้องอธิบายให้ละเอียด เพียงตระหนักถึงปัญหานี้ 90% ของการต่อสู้ นอกจากนี้ฉันคิดว่าฉันได้ยินบางสิ่งบางอย่างเมื่อหลายปีก่อนเกี่ยวกับวัตถุประสงค์ทั่วไปที่เกี่ยวข้องกับอัลกอริทึม "ซองจดหมาย" หรืออะไรทำนองนั้น (เสียงกริ่งดังขึ้นทุกคนหรือไม่) ปัญหาเกี่ยวกับเพชรปัญหาของแท้ที่ฉันอาจนึกได้คือถ้าคุณพยายามใช้ห้องสมุดบุคคลที่สามและไม่เห็นว่าสองคลาสที่ไม่เกี่ยวข้องกันดูเหมือนว่าในห้องสมุดนั้นมีคลาสพื้นฐานร่วมกัน แต่นอกเหนือไปจาก เอกสารคุณสมบัติของภาษาที่ง่ายอาจทำให้คุณต้องการประกาศความตั้งใจในการสร้างข้าวหลามตัดก่อนที่จะทำการรวบรวมเพชรให้คุณ ด้วยคุณสมบัติเช่นนี้การสร้างเพชรใด ๆ ก็อาจเป็นการจงใจไม่ประมาทหรือเพราะไม่มีใครรู้ถึงความผิดพลาดนี้ เพื่อให้ทุกคนพูดว่า ... มีเหตุผลจริงหรือที่คนส่วนใหญ่เกลียดชังมรดกหลายอย่างหรือว่ามันเป็นเพียงแค่กลุ่มฮิสทีเรียที่ก่อให้เกิดอันตรายมากกว่าดี? มีบางอย่างที่ฉันไม่เห็นใช่ไหม ขอขอบคุณ. ตัวอย่าง รถขยาย WheeledVehicle, KIASpectra ขยายรถยนต์และอิเล็กทรอนิกส์ KIASpectra มีวิทยุ เหตุใด KIASpectra จึงไม่มี Electronic เพราะมันเป็นอิเล็กทรอนิกส์ การสืบทอดกับการจัดองค์ประกอบควรเป็นความสัมพันธ์แบบ is-a กับความสัมพันธ์แบบ a-a เพราะมันเป็นอิเล็กทรอนิกส์ …

14
ความยาวในอุดมคติของวิธีการสำหรับคุณคืออะไร? [ปิด]
ในการเขียนโปรแกรมเชิงวัตถุแน่นอนว่าไม่มีกฎที่แน่นอนเกี่ยวกับความยาวสูงสุดของวิธีการ แต่ฉันก็ยังพบว่าคำพูดสองคำนี้ขัดแย้งกันดังนั้นฉันอยากได้ยินสิ่งที่คุณคิด ในรหัสที่สะอาด: คู่มือของงานฝีมือซอฟต์แวร์เปรียว Robert Martin กล่าวว่า: กฎข้อแรกของฟังก์ชั่นคือมันควรมีขนาดเล็ก กฎข้อที่สองของฟังก์ชั่นคือควรมีขนาดเล็กกว่านั้น ฟังก์ชั่นไม่ควรยาว 100 บรรทัด ฟังก์ชั่นแทบจะไม่เคยมีความยาว 20 บรรทัด และเขายกตัวอย่างจากโค้ด Java ที่เขาเห็นจาก Kent Beck: ทุกฟังก์ชั่นในโปรแกรมของเขามีความยาวเพียงสองหรือสามหรือสี่บรรทัด แต่ละคนเห็นได้อย่างชัดเจน แต่ละคนเล่าเรื่อง และแต่ละคนก็นำคุณไปสู่ลำดับต่อไปที่น่าสนใจ นั่นเป็นสิ่งที่ฟังก์ชั่นของคุณควรสั้นลง! สิ่งนี้ฟังดูยอดเยี่ยม แต่ในทางกลับกันในCode Complete Steve McConnell พูดอะไรบางอย่างที่แตกต่างกันมาก: รูทีนควรได้รับอนุญาตให้เติบโตอย่างเป็นธรรมชาติถึง 100-200 บรรทัดหลักฐานหลายทศวรรษบอกว่ากิจวัตรที่มีความยาวดังกล่าวไม่มีข้อผิดพลาดเกิดขึ้นได้ง่าย และเขาให้การอ้างอิงถึงการศึกษาที่ระบุว่ากิจวัตร 65 บรรทัดหรือยาวกว่านั้นถูกกว่าเพื่อพัฒนา ดังนั้นในขณะที่มีการแยกความคิดเห็นเกี่ยวกับเรื่องนี้มีวิธีปฏิบัติที่ดีที่สุดสำหรับคุณหรือไม่?

11
ฉันจะลดความเจ็บปวดคอมไพล์ได้อย่างไรเมื่อทุกคนทำงานกับอาจารย์?
ทีมงานเอกสารของเราประมาณสิบคนเพิ่งย้ายจาก SVN ไป Git ใน SVN ทุกคนทำงานในระดับปริญญาโท - แบบจำลองที่ฉันเกลียดเสมอ แต่ฉันไม่สามารถทำให้เกิดการเปลี่ยนแปลงนั้นได้ เป็นส่วนหนึ่งของการย้ายไปยัง Git เราได้ตกลงที่จะแก้ไขปัญหาดังกล่าว แต่เรายังไม่สามารถทำได้ (รอการเปลี่ยนแปลงการสร้างที่จะอนุญาตให้สร้างจากสาขาโดยพลการ) ในขณะเดียวกันทุกคนกำลังทำงานกับอาจารย์ ใช่ฉันรู้ว่านี่แย่มากเชื่อฉัน ตอนนี้เราเห็นอาการสะอึกมากขึ้นกว่าตอนที่เราใช้ SVN ซึ่งบางส่วนเกิดจากแบบจำลองสองขั้นตอนของ Git (ในพื้นที่และระยะไกล) บางครั้งผู้คนยอมรับ แต่ไม่สามารถผลักดันหรือดึงและรับความขัดแย้งกับการเปลี่ยนแปลงในท้องถิ่นที่ค้างอยู่ เมื่อวานมีใครบางคนอุดตันการเปลี่ยนแปลงล่าสุด - อย่างใดอย่างหนึ่ง - ด้วยการผสานผิดไปซึ่งฉันคิดว่าเป็นผสานที่ Git ทำเมื่อคุณดึงและมีการเปลี่ยนแปลงที่โดดเด่น (เขาไม่สามารถบอกฉันได้ว่าสิ่งที่เขาทำและเพราะเขาใช้ GUI ฉันไม่สามารถตรวจสอบประวัติเชลล์ของเขาได้) ในฐานะผู้ใช้ Git ที่มีความเชี่ยวชาญมากที่สุด (อ่าน: ฉันเคยใช้มาก่อน แต่ไม่ได้มีความซับซ้อนสูง) ฉันเป็นผู้กำหนดนโยบายการสอนเครื่องมือและการทำความสะอาด ฉันสามารถเปลี่ยนแปลงอะไรได้บ้างกับวิธีที่เราใช้เครื่องมือในการสร้างต้นแบบที่ใช้งานร่วมกันและมีข้อผิดพลาดน้อยลงจนกระทั่งเราสามารถเปลี่ยนไปทำการพัฒนาบนสาขาได้ ทีมกำลังใช้ Tortoise Git บน Windows เราเคยใช้ Tortoise Git …
123 git  bitbucket 

30
การเขียนโปรแกรมด้วย ADD / ADHD [ปิด]
ฉันได้วินิจฉัยเพิ่ม อ่อนโยน แต่มีผลต่อการทำงานของฉัน: วอกแวกได้ง่าย ไม่สามารถมุ่งเน้นในแต่ละโครงการ ติดอยู่กับเว็บ การผัดวันประกันพรุ่ง เป็นต้น คุณใช้กลยุทธ์อะไรในการชดเชย? หนึ่งการชี้แจง ฉันมีการ เพิ่มจริง ฉันได้รับการวินิจฉัยว่าเป็นเด็กและต่อสู้กับมันมาตลอดชีวิต ฉันไม่ได้พูดถึงADD เทียมซึ่งถูกชักนำโดยสื่อมากเกินไป ปรับปรุง ฉันเพิ่งอ่านคำอธิบายนี้เพิ่ม / สมาธิสั้น มันเป็นคำอธิบายที่ดีโดยเฉพาะอย่างยิ่งสำหรับพวกเราที่เขียนโปรแกรม ADDers ฉันเป็นเหมือนกล่องเครื่องมือ ด้วยเครื่องมือทั้งหมดที่ฉันจะต้อง นอนอย่างนุ่มนวลและเรียบร้อยในกล่อง พร้อมสำหรับฉันที่จะใช้พวกเขา กล่องเครื่องมือโปร่งแสง ดังนั้นฉันสามารถดูได้ที่นั่น กุญแจไปยังกล่องเครื่องมือจะถูกล็อคอยู่ข้างใน

5
องค์ประกอบ HTML สองรายการที่มีแอตทริบิวต์ id เดียวกัน: มันแย่ขนาดไหน?
เพียงแค่เรียกดูซอร์สโค้ดของ google maps ในส่วนหัวของพวกเขาพวกเขามี 2 divs ที่มี id = "ค้นหา" หนึ่งประกอบด้วยอื่น ๆ และยังมีแอตทริบิวต์ jstrack = "1" มีรูปแบบแยกพวกเขาเช่นนั้น: <div id="search" jstrack="1"> <form action="/maps" id="...rest isn't important"> ... <div id="search">... เนื่องจากนี่คือ google ฉันคิดว่ามันไม่ใช่ความผิดพลาด ดังนั้นมันจะเลวร้ายจริงๆที่จะละเมิดกฎนี้? ตราบใดที่คุณระมัดระวังในการเลือก css และ dom ทำไมไม่ลองใช้คลาสเหมือน id ไม่มีใครทำสิ่งนี้โดยเจตนาและถ้าเป็นเช่นนั้นทำไม?

14
อัตโนมัติทำให้รหัส C ++ เข้าใจยากขึ้นหรือไม่
ผมเห็นการประชุมโดย Sutter สมุนไพรที่เขาสนับสนุนให้ทุก C ++ Programmer autoใช้ ฉันต้องอ่านรหัส C # เมื่อหลายปีก่อนที่varมีการใช้อย่างกว้างขวางและรหัสนั้นยากที่จะเข้าใจ - ทุกครั้งที่varมีการใช้ฉันต้องตรวจสอบประเภทการคืนของด้านขวา บางครั้งมากกว่าหนึ่งครั้งเพราะฉันลืมประเภทของตัวแปรหลังจากที่ในขณะ! ฉันรู้ว่าคอมไพเลอร์รู้ชนิดและไม่ต้องเขียน แต่เป็นที่ยอมรับกันอย่างกว้างขวางว่าเราควรเขียนโค้ดสำหรับโปรแกรมเมอร์ไม่ใช่สำหรับคอมไพเลอร์ ฉันก็รู้ว่าเขียนง่ายกว่า: auto x = GetX(); กว่า: someWeirdTemplate<someOtherVeryLongNameType, ...>::someOtherLongType x = GetX(); แต่จะเขียนเพียงครั้งเดียวและGetX()มีการตรวจสอบประเภทส่งคืนหลาย ๆ ครั้งเพื่อทำความเข้าใจว่าxมีประเภทใด นี่ทำให้ฉันสงสัย - autoทำให้รหัส C ++ ยากที่จะเข้าใจหรือไม่
122 c++  c++11 

13
ความต้องการและข้อกำหนดต่างกันอย่างไร [ปิด]
ฉันได้รับมอบหมายให้พัฒนาข้อกำหนดและข้อกำหนดสำหรับโครงการที่กลุ่มของเราเริ่มต้น ฉันรู้ว่าฉันไม่รู้ความแตกต่าง การค้นหาของ Google ทำให้ฉันสับสนมากขึ้นดูเหมือนว่าบางคนบอกว่าข้อกำหนดเป็นข้อกำหนด แต่อยู่ในระดับที่ต่ำกว่า

14
เป็นไปได้ไหมที่จะเขียนใหม่ทุกบรรทัดของโปรเจ็กต์โอเพนซอร์สในวิธีที่แตกต่างกันเล็กน้อยและใช้ในโปรเจกต์ปิด
มีบางรหัสที่เป็นGPLหรือLGPLที่ฉันกำลังพิจารณาใช้สำหรับโครงการ iPhone ถ้าฉันใช้รหัสนั้น (JavaScript) และเขียนใหม่ในภาษาอื่นเพื่อใช้กับ iPhone นั่นจะเป็นปัญหาทางกฎหมายหรือไม่? ในทางทฤษฎีกระบวนการที่เกิดขึ้นคือฉันได้ผ่านแต่ละบรรทัดของโครงการเรียนรู้สิ่งที่กำลังทำและนำแนวคิดมาใช้ในภาษาใหม่ สำหรับฉันดูเหมือนว่าการเรียนรู้วิธีนำบางสิ่งมาใช้ แต่จากนั้นนำไปใช้งานแยกต่างหากจากใบอนุญาตเดิม ดังนั้นคุณจึงคัดลอกอัลกอริทึมเท่านั้นซึ่งคุณสามารถเรียนรู้จากที่อื่นนอกเหนือจากโปรเจ็กต์ดั้งเดิม ใบอนุญาตครอบคลุมการใช้งานเฉพาะหรืออัลกอริทึมเช่นกันหรือไม่? แก้ไข ------ ดีใจจริงๆที่ได้เห็นหัวข้อนี้สร้างบทสนทนาที่ดี เพื่อให้การสำรองข้อมูลเพิ่มเติมเล็กน้อยโปรเจ็กต์ที่เกี่ยวข้องทำการวิเคราะห์เสียงบางประเภท ฉันเชื่อว่ามันไม่สำคัญที่จะเรียนรู้หรือนำไปใช้แม้ว่าฉันจะพร้อมที่จะเริ่มดำเนินการกับงานนี้ (ฉันอยู่ในระดับที่ฉันสามารถใช้อัลกอริทึมFFT ได้สคริปต์LOCต่ำดังนั้นฉันไม่คิดว่ามันจะยากเกินไปที่จะทำพอร์ตตรง ฉันชอบแนวคิดของการกู้พอร์ตของฉันอีกครั้งและใช้มันในแอปพลิเคชัน ฉันไม่เห็นปัญหาใด ๆ กับสิ่งนั้นและมันจะเป็นวิธีที่ยอดเยี่ยมในการตอบแทนบางสิ่งแก่ชุมชน ฉันจะเพิ่มบรรทัดเกี่ยวกับการไม่ต้องการพูดคุยเกี่ยวกับประเด็นทางศีลธรรม แต่ฉันดีใจมากที่ฉันไม่ได้ทำตามที่ดูเหมือนจะทำให้เกิดการอภิปรายเล็กน้อย ฉันยังรู้สึกแปลก ๆ เกี่ยวกับการใช้โอเพนซอร์สเพื่อเรียนรู้จาก นี่หมายความว่าสิ่งใดก็ตามที่เรียนรู้จากโครงการโอเพ่นซอร์สไม่ได้รับอนุญาตให้ใช้ในโครงการโอเพนซอร์สหรือไม่? การดำเนินการจะต้องไม่ถูกพิจารณาว่าเป็นการละเมิดใบอนุญาตหรือไม่ มืด! แก้ไข 2 -------- ติดตามคำถาม

15
“ นักพัฒนาซอฟต์แวร์” ต่างจาก“ ที่ปรึกษาด้านซอฟต์แวร์” อย่างไร ที่ปรึกษาคืออะไร
ฉันเคยเห็นผู้คนมากมายอ้างตัวเองว่าเป็น "ผู้ให้คำปรึกษาด้านซอฟต์แวร์" ที่ปรึกษาเหล่านี้ทำสิ่งที่นักพัฒนาซอฟต์แวร์ปกติทำเขียนรหัสประเมินงานแก้ไขข้อบกพร่องและเข้าร่วมการประชุม ฯลฯ ความแตกต่างเพียงอย่างเดียวคือด้านการเงินที่ปรึกษาจบลงด้วยการหารายได้มากขึ้น ถ้าอย่างนั้นผู้พัฒนาซอฟต์แวร์ต่างจาก "ที่ปรึกษา" อย่างไร? นอกจากคำถามหลักแล้วฉันอยากรู้ว่านักพัฒนาซอฟต์แวร์จะเป็นที่ปรึกษาได้อย่างไร มีแนวทางเฉพาะสำหรับที่ปรึกษาหรือไม่? พวกเขาจำเป็นต้องสะสมหนังสือรับรองและเขียนรายงานการวิจัยหรือไม่? โปรดอย่าสับสนระหว่างที่ปรึกษาด้านซอฟต์แวร์กับที่ปรึกษาด้านการจัดการ ที่ปรึกษาด้านซอฟต์แวร์ที่ฉันเห็นไม่ใช่ผู้จัดการ
122 terminology 

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

30
ฉันยังไม่รู้วิธีการโปรแกรม
ฉันอ่านหนังสือจำนวนมากสำหรับภาษาการเขียนโปรแกรมต่างๆ Java, Python, C และอื่น ๆ ฉันเข้าใจและรู้พื้นฐานทั้งหมดของภาษาและฉันเข้าใจอัลกอริทึมและโครงสร้างข้อมูล (เทียบเท่าพูดชั้นเรียนวิทยาศาสตร์คอมพิวเตอร์สองปี) แต่ฉันยังไม่สามารถคิดวิธีการเขียนโปรแกรมที่มีประโยชน์ หนังสือการเขียนโปรแกรมทั้งหมดแสดงวิธีการเขียนภาษา แต่ไม่ใช่วิธีการใช้! ตัวอย่างการเขียนโปรแกรมเป็นพื้นฐานอย่างมากเช่นสร้างแคตตาล็อกการ์ดสำหรับห้องสมุดหรือเกมง่ายๆหรือใช้อัลกอริธึมเป็นต้นพวกเขาไม่ได้แสดงวิธีการพัฒนาโปรแกรมที่ซับซ้อนซึ่งจริง ๆ แล้วทำอะไรที่มีประโยชน์! ฉันได้ดูโปรแกรมโอเพ่นซอร์สบนSourceForgeแต่พวกเขาไม่เข้าใจฉันมากนัก มีหลายร้อยไฟล์ในแต่ละโปรแกรมและโค้ดหลายพันบรรทัด แต่ฉันจะเรียนรู้วิธีการทำเช่นนี้ได้อย่างไร ไม่มีอะไรในหนังสือเล่มใดที่ฉันสามารถซื้อใน Amazon ที่จะให้เครื่องมือในการเขียนโปรแกรมเหล่านี้ คุณไปจากการอ่านรู้เบื้องต้นเกี่ยวกับ Java หรือ Programming Python หรือภาษาการเขียนโปรแกรม C และอื่น ๆ ถึงความสามารถในการพูดจริง ๆ ฉันมีความคิดสำหรับโปรแกรม X นี่เป็นวิธีที่ฉันจะพัฒนาหรือไม่ ดูเหมือนว่าจะมีส่วนร่วมมากขึ้นในการเขียนโปรแกรมมากกว่าที่คุณสามารถเรียนรู้ในหนังสือหรือจากชั้นเรียน ฉันรู้สึกเหมือนมีบางสิ่ง ฉันจะถูกทางที่ถูกต้องได้อย่างไร?
122 untagged 

2
ใบอนุญาต SPDX ใดที่เทียบเท่ากับ 'สงวนลิขสิทธิ์'?
ฉันได้รับสิ่งpackage.jsonที่ต้องการตัวย่อลิขสิทธิ์ที่ได้รับอนุมัติ SPDX แต่ฉันไม่สามารถหาตัวแปลที่ว่า 'สิทธิ์การใช้งานเชิงพาณิชย์ลิขสิทธิ์สงวนลิขสิทธิ์' มีหนึ่งรายการที่ไม่ใช่ FOSS หรือไม่ซึ่งฉันต้องการระบุว่าฉันไม่อนุญาตให้นำมาใช้ซ้ำได้หรือไม่
121 licensing 

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

12
กลยุทธ์ที่มีประสิทธิภาพสำหรับการรองรับหลายภาษาใน. NET [ปิด]
ฉันกำลังพัฒนา UI สำหรับแอปพลิเคชัน. NET MVC ที่จะต้องมีการแปลเนื้อหาทั้งหมดในระดับสากลในอนาคตอันใกล้ ฉันคุ้นเคยกับ. NET โดยทั่วไป แต่ไม่เคยมีโครงการที่ต้องการความสำคัญในการเข้าถึงระหว่างประเทศ การฉายภาพนั้นเริ่มต้นขึ้นในภาษาอังกฤษ ฉันควรใช้มาตรการใดในจุดนี้เพื่อทำให้การปรับใช้การแปลเป็นภาษาท้องถิ่นง่ายขึ้นในอนาคต

11
การทดสอบการรวม (ฐานข้อมูล) ไม่ดีหรือไม่?
บางคนยืนยันว่าการทดสอบการรวมเป็นสิ่งเลวและผิดทุกอย่างต้องผ่านการทดสอบหน่วยซึ่งหมายความว่าคุณต้องจำลองการอ้างอิง ตัวเลือกที่ด้วยเหตุผลต่าง ๆ ฉันไม่ชอบเสมอ ฉันพบว่าในบางกรณีการทดสอบหน่วยก็ไม่ได้พิสูจน์อะไรเลย ลองมาปรับใช้การใช้พื้นที่เก็บข้อมูล (เล็กน้อย, ไร้เดียงสา) ต่อไปนี้ (ใน PHP) เป็นตัวอย่าง: class ProductRepository { private $db; public function __construct(ConnectionInterface $db) { $this->db = $db; } public function findByKeyword($keyword) { // this might have a query builder, keyword processing, etc. - this is // a totally naive example just to …

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