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

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

22
OOP ยากหรือไม่เพราะไม่ใช่ธรรมชาติ?
มักจะได้ยินว่า OOP นั้นสอดคล้องกับวิธีที่ผู้คนคิดเกี่ยวกับโลก แต่ฉันจะไม่เห็นด้วยอย่างยิ่งกับข้อความนี้: เรา (หรืออย่างน้อยฉัน) สร้างแนวคิดโลกในแง่ของความสัมพันธ์ระหว่างสิ่งต่าง ๆ ที่เราพบ แต่จุดเน้นของ OOP คือการออกแบบคลาสบุคคลและลำดับชั้นของพวกเขา โปรดสังเกตว่าในชีวิตประจำวันความสัมพันธ์และการกระทำมีอยู่ส่วนใหญ่ระหว่างวัตถุที่จะเป็นอินสแตนซ์ของคลาสที่ไม่เกี่ยวข้องใน OOP ตัวอย่างของความสัมพันธ์เช่น: "หน้าจอของฉันอยู่ด้านบนของตาราง"; "ฉัน (มนุษย์) กำลังนั่งอยู่บนเก้าอี้"; "รถยนต์อยู่บนถนน"; "ฉันพิมพ์บนแป้นพิมพ์"; "เครื่องชงกาแฟต้มน้ำ" "ข้อความจะปรากฏในหน้าต่างเทอร์มินัล" เราคิดในแง่ของ bivalent (บางครั้ง trivalent เช่นใน "ฉันให้คุณดอกไม้") คำกริยาที่กริยาคือการกระทำ (ความสัมพันธ์) ที่ทำงานบนวัตถุสองชิ้นเพื่อสร้างผลลัพธ์ / การกระทำบางอย่าง โฟกัสอยู่ในการดำเนินการและทั้งสอง (หรือสาม) [ไวยากรณ์] วัตถุมีความสำคัญเท่าเทียมกัน เปรียบเทียบกับ OOP ที่คุณต้องค้นหาวัตถุหนึ่ง (คำนาม) ก่อนและบอกให้ดำเนินการบางอย่างกับวัตถุอื่น วิธีการคิดเปลี่ยนจากการกระทำ / คำกริยาที่ใช้กับคำนามเป็นคำนามปฏิบัติการบนคำนาม - ราวกับว่าทุกอย่างถูกพูดด้วยเสียงเฉยๆหรือสะท้อนเสียงเช่น "ข้อความแสดงโดยหน้าต่างเทอร์มินัล" หรืออาจจะ …

3
เหตุใดฐานข้อมูล Web SQL จึงเลิกใช้แล้ว
ฉันกำลังสร้างแอพ Android ไฮบริด ตอนแรกฉันตัดสินใจที่จะใช้ localStorage หลังจากใช้เวลา 2 วันฉันรู้ว่ามันแปลกมากและทำให้มันลดลง จากนั้นฉันก็เก็บดรรชนี DB หลังจากใช้เวลาทั้งวันของวันนี้และได้รับผลลัพธ์ใน Google Chrome จริง ๆ แล้วมันไม่ได้ทำงานภายใน WebView ของแอพ android และฉันไม่เคยใช้ฐานข้อมูล Web SQL เลยเพราะมันเลิกใช้แล้ว อย่างไรก็ตามมีสิ่งที่ฉันสังเกตเห็นว่า PhoneGap ยังคงใช้เบราว์เซอร์ของ Web SQL และ android ที่รองรับ เพราะเหตุใด Web SQL จึงเลิกใช้ตั้งแต่แรก และเป็นความคิดที่ดีที่ฉันจะไปกับ Web SQL ตอนนี้หรือไม่

4
ความแตกต่างระหว่าง TypeScript และ Dart [ปิด]
Microsoft เพิ่งเปิดตัว typescript ซึ่งเป็นภาษาการเขียนโปรแกรมเหมือน JavaScript ใหม่ ก่อนหน้านี้ฉันได้ยินเกี่ยวกับ Dart ซึ่งเป็นภาษาการเขียนโปรแกรมใหม่ที่สร้างโดย Google เพื่อแก้ปัญหาที่เกี่ยวข้องกับ Javascript เช่นประสิทธิภาพความสามารถในการปรับขยายและอื่น ๆ จุดประสงค์ของทั้งสองภาษาใหม่ดูเหมือนกันสำหรับฉัน .. คุณคิดอย่างไร? วัตถุประสงค์ของภาษาเหมือนกันหรือไม่ อะไรคือความแตกต่างที่แท้จริงของพวกเขา?
85 dart  typescript 

10
คุณจะหลีกเลี่ยง getters และ setters ได้อย่างไร
ฉันมีช่วงเวลาที่ยากลำบากในการออกแบบชั้นเรียนในแบบที่เป็นจริง ฉันอ่านแล้วว่าวัตถุแสดงพฤติกรรมของพวกเขาไม่ใช่ข้อมูล ดังนั้นแทนที่จะใช้ getter / setters เพื่อแก้ไขข้อมูลวิธีการของคลาสที่กำหนดควรเป็น "คำกริยา" หรือการดำเนินการกับวัตถุ ยกตัวอย่างเช่นใน 'บัญชี' วัตถุเราจะมีวิธีการWithdraw()และDeposit()มากกว่าsetAmount()ฯลฯ ดู: ทำไมทะเยอทะยานและหมาวิธีเป็นความชั่วร้าย ตัวอย่างเช่นกำหนดคลาสลูกค้าที่เก็บข้อมูลจำนวนมากเกี่ยวกับลูกค้าเช่นชื่อ DOB, Tel, ที่อยู่เป็นต้นเราจะหลีกเลี่ยง getter / setters เพื่อรับและตั้งค่าคุณลักษณะเหล่านั้นได้อย่างไร วิธีการพิมพ์ 'พฤติกรรม' ประเภทใดที่สามารถเขียนเพื่อเติมข้อมูลทั้งหมดได้

20
การลดจำนวนบรรทัดในโค้ดมีความสำคัญอย่างไร
ฉันเป็นนักพัฒนาซอฟต์แวร์ที่ทำงานกับ J2SE (core java) บ่อยครั้งในระหว่างการตรวจสอบรหัสของเราเราถูกขอให้ลดจำนวนบรรทัดในรหัสของเรา มันไม่เกี่ยวกับการลบรหัสที่ซ้ำซ้อนมันเกี่ยวกับการติดตามสไตล์ที่เน้นการทำสิ่งเดียวกันโดยมีบรรทัดน้อยลงในรหัสในขณะที่ฉันเชื่อว่าการมีความชัดเจนในโค้ดแม้ว่ามันจะหมายถึงการเพิ่มจำนวนบรรทัด คุณคิดว่าเป็นวิธีที่ถูกต้องในการทำสิ่งต่าง ๆ ? หาก LOC (บรรทัดของรหัส) มีจำนวนน้อยจะมีผลกับรหัสอย่างไร หาก LOC เป็นจำนวนที่มากกว่าจะมีผลกับรหัสอย่างไร ตัวอย่างจากเว็บไซต์: "javaranch" - public static void happyBirthday(int age) { if ((age == 16) || (age == 21) || ((age > 21) && (((age % 10) == 0) || ((age % 25) == 0)))) { …

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

17
ประสบการณ์ฝึกงานเชิงลบของฉันเป็นตัวแทนของโลกแห่งความจริงหรือไม่? [ปิด]
ฉันอยากรู้ว่าประสบการณ์ปัจจุบันของฉันในฐานะฝึกงานเป็นตัวแทนของอุตสาหกรรมจริงหรือไม่ ในฐานะพื้นหลังฉันผ่านส่วนที่ดีกว่าของวิชาเอกการคำนวณสองวิชาและวิชาเอกคณิตศาสตร์ที่มหาวิทยาลัยใหญ่ ฉันชอบทุกคลาสและชอบพวกเขาทั้งหมดดังนั้นฉันจึงอยากคิดว่าฉันไม่ได้เขียนโปรแกรมที่แย่มาก ฉันได้ฝึกงานกับ บริษัท ซอฟต์แวร์รายใหญ่แห่งหนึ่งและผ่านไปครึ่งทางตอนนี้ฉันรู้สึกตกใจกับคุณภาพของรหัสที่ต่ำมาก ความคิดเห็นไม่มีอยู่จริงมันเป็นรหัสสปาเก็ตตี้และทุกสิ่งที่ผิดก็ยิ่งแย่ลงไปอีก ฉันได้ทำการติว / ติวตันมาแล้วหลายครั้งฉันจึงคุ้นเคยกับการอ่านรหัสที่ไม่ดี แต่ผลิตภัณฑ์อุตสาหกรรมหลัก ๆ ที่ฉันได้เห็นนั้นมีทั้งหมด ฉันทำงานวันละ 10-12 ชั่วโมงและไม่เคยรู้สึกว่าฉันได้ทุกที่เพราะมัน ' ชั่วโมงที่ไม่มีที่สิ้นสุดของการพยายามหา API ที่ไม่มีเอกสารหรือพิจารณาพฤติกรรมของส่วนอื่น ๆ ของผลิตภัณฑ์ (ไม่มีเอกสารที่สมบูรณ์) ฉันออกจากงานที่เกลียดงานทุกวันจนถึงตอนนี้และฉันอยากรู้ว่านี่คือสิ่งที่จะเก็บไว้ตลอดชีวิตของฉันหรือไม่ ฉันได้วาดฟางสั้น ๆ ในการฝึกงาน (บัญชีเงินเดือนขนาดใหญ่ที่ไร้เหตุผลบ่งบอกว่ามันไม่ใช่ตำแหน่งที่มีคุณภาพต่ำ) หรือนี่คือสิ่งที่โลกแห่งความจริงเป็นเช่นนั้นหรือไม่?

6
รูปแบบ“ มาตรฐาน” สำหรับการใช้การประทับเวลาเป็นส่วนหนึ่งของชื่อไฟล์ [ปิด]
ฉันค้นหารูปแบบมาตรฐานเพื่อใช้วันที่ / เวลาเป็นส่วนหนึ่งของชื่อไฟล์และไม่สามารถเกิดอะไรขึ้นได้ คำถามของฉันคือสองส่วน: กำลังใช้การประทับเวลา เพื่อบังคับใช้ที่ไม่ซ้ำกัน ในชื่อไฟล์การปฏิบัติที่ไม่ดี? ฉันจะได้รับเวลาจากวันที่สร้างและเป็นอันดับชื่อไฟล์ (file0001.bak, file0002.bak ฯลฯ ) mv 2011-01* somewhere/แต่เพียงรวมถึงการประทับเวลาช่วยให้การดำเนินการดังกล่าวเป็นแฟ้ม มีข้อเสียในการใช้ระบบการตั้งชื่อประเภทนี้หรือไม่? YYYY-mm-dd_HH-MM-SSรูปแบบที่ผมกำลังใช้งานอยู่ มีรูปแบบที่ดีกว่าที่ฉันควรใช้หรือไม่ ด้วยรูปแบบนี้ฉันควรจะเกี่ยวข้องกับความเข้ากันได้ของระบบไฟล์, str_to_date_parsing ข้อกังวล ฯลฯ ? ขอบคุณ! แก้ไข: ฉันอาจต้องการออกจากการบังคับใช้บิตที่ไม่ซ้ำกันเนื่องจากเป็นผู้ใช้เดียวที่สร้างการสำรองข้อมูลโดยใช้ cronjob (ไม่ควรมีปัญหาใด ๆ ที่เกิดขึ้นพร้อมกัน)

15
ข้อบังคับของอุตสาหกรรมซอฟต์แวร์ [ปิด]
ทุก ๆ ปีมีคนเสนอระเบียบที่เข้มงวดมากขึ้นสำหรับอุตสาหกรรมซอฟต์แวร์ นี้บทความ IEEEได้รับความสนใจบางอย่างเมื่อเร็ว ๆ นี้เกี่ยวกับเรื่องนี้ หากวิศวกรซอฟต์แวร์ที่เขียนโปรแกรมสำหรับระบบที่เปิดเผยต่อสาธารณะต่อความเสี่ยงทางกายภาพหรือทางการเงินรู้ว่าพวกเขาจะถูกทดสอบในความสามารถของพวกเขาความคิดดำเนินไปมันจะลดข้อบกพร่องและความล้มเหลวในรหัส ฉันสงสัยเกี่ยวกับคุณค่าและข้อดีของสิ่งนี้ ในความคิดของฉันดูเหมือนว่าจะมีการจับจองพื้นที่โดยผู้ที่เสนอให้ ข้อความที่อ้างว่าสำหรับฉันคือ: การสอบจะทดสอบความรู้พื้นฐานไม่ใช่ความเชี่ยวชาญในสาระการเรียนรู้ เนื่องจากความล้มเหลวครั้งใหญ่ (เช่นTHERAC-25 ) ดูเหมือนจะซับซ้อนประเด็นที่ลึกซึ้งที่ "ความรู้พื้นฐาน" จะไม่เพียงพอที่จะป้องกัน ไม่สนใจปัญหาท้องถิ่นใด ๆ (เช่นการป้องกันที่มีอยู่ของชื่อวิศวกรในบางเขตอำนาจศาล): เป้าหมายมีความสูงส่ง - หลีกเลี่ยง quacks / charlatans 1และทำให้ความแตกต่างนั้นชัดเจนยิ่งขึ้นสำหรับผู้ที่ซื้อซอฟต์แวร์ การเข้มงวดมากขึ้นของอุตสาหกรรมซอฟต์แวร์สามารถบรรลุเป้าหมายเดิมได้หรือไม่? 1ตรงตามข้อกำหนดของวิชาชีพแพทย์ที่ตั้งใจจะทำ
85 legal  profession 

16
ฉันจะจัดการกับเพื่อนร่วมงานที่ช้าและไม่ทุ่มเทในทีมได้อย่างไร [ปิด]
ฉันทำงานเกี่ยวกับโครงการใหม่ โครงการทำงานดังนี้: ผู้ใช้สามารถเข้าถึงเว็บแอพได้โดยใช้ลิงค์และเขาสามารถเพิ่มหลายระบบในเครือข่ายของเขาและจัดการรายละเอียดของระบบนั้น ๆ ส่วนของฉันเกี่ยวข้องกับส่วนหน้าและเว็บเซิร์ฟเวอร์ซึ่งทำในหลาม หลามของฉันสื่อสารกับโครงการจริงซึ่งทำใน c & c ++ ทั้งหมด โครงการ c / c ++ เป็นแอพหลักที่ใช้งานได้ทั้งหมด หลามของฉันส่งคำขอของผู้ใช้ไปยังมันและแสดงการตอบสนองจากมันไปยังผู้ใช้ ฉันคุ้นเคยกับงานของฉันมากและจะเสร็จเร็ว ๆ นี้ เนื่องจากนั่นไม่ได้ทำงานมากในนั้น และฉันเป็นคนที่ชอบทำงาน ฉันใช้เวลาส่วนใหญ่ในสำนักงานและกลับบ้านเมื่อฉันรู้สึกง่วงนอนเท่านั้น แอป c / c ++ ได้รับการจัดการโดยเพื่อนร่วมงานอีกคนที่มีประสบการณ์มากกว่า 5 ปีและสามารถทำสิ่งต่าง ๆ ได้เร็วกว่าฉันมาก แต่เขาไม่เคยทำเลย อาจเป็นเพราะเขาไม่ชอบทำ แอพของเขาล้มเหลวบ่อยครั้งเมื่อหลามของฉันสื่อสารกับมันหรือคืนค่าผิด มันเต็มไปด้วยข้อบกพร่อง เนื่องจากแอพของฉันขึ้นอยู่กับว่าฉันกำลังสร้างมันยาก แทนที่จะแก้ไขข้อบกพร่องเขาขอให้ฉันทำให้งานของฉันช้าลง เขาขอให้ฉันบอกผู้จัดการว่างานของฉันต้องใช้เวลานานมาก เขาขอให้ฉันหลอกผู้จัดการและบังคับให้ฉันทำงานช้าเหมือนเขา ในระหว่างการประชุมโครงการเมื่อผู้จัดการถามเขาเกี่ยวกับข้อบกพร่องเขาบอกว่าเขาแก้ไขทุกอย่างและทำงานได้ดี เนื่องจากเขาเป็นเพื่อนร่วมงานของฉันฉันจึงไม่สามารถบอกอะไรกับผู้จัดการได้ เห็นได้ชัดว่าฉันต้องมีความสัมพันธ์ที่ดีกับเพื่อนร่วมงานมากกว่าผู้จัดการของฉันเนื่องจากส่วนใหญ่เราจะอยู่กับเพื่อนร่วมงานไม่ใช่ผู้จัดการ ฉันไม่สามารถบอกอะไรเกี่ยวกับเรื่องนี้กับผู้จัดการได้เพราะถ้าผู้จัดการถามเขาว่าทำไมเขาอาจคิดว่าฉันบ่นกับเขาถึงผู้จัดการ และเขายังโกหกต่อไปในการประชุม และเนื่องจากเขาแก้ไขข้อผิดพลาดอย่างช้าๆมันก็ยิ่งทำให้งานของฉันช้าลง ตอนนี้ฉันคิดถึงการทำงานในส่วนหน้าของแอพของฉันและทำให้มันเสร็จสิ้นเพื่อว่าในเวลาเดียวกันเขาสามารถทำให้โครงการของเขามีเสถียรภาพ ตอนนี้เขาขอให้ฉันบอกผู้จัดการว่าส่วนหน้าของฉันต้องการงานจำนวนมากและฉันอาจต้องใช้เวลามากขึ้นเพื่อที่เขาจะสามารถลากโครงการลง …
85 teamwork 

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

11
คงเป็น "ความชั่วร้าย" ในระดับสากลสำหรับการทดสอบหน่วยและถ้าเป็นเช่นนั้นทำไม Resharper จึงแนะนำ [ปิด]
ฉันได้พบว่ามีเพียง 3 วิธีในการทดสอบหน่วยอ้างอิง (จำลอง / ต้นขั้ว) ที่คงที่ใน C # .NET: ไฝ TypeMock JustMock เนื่องจากว่าสองสิ่งนี้ไม่ฟรีและไม่มีการปล่อยรุ่น 1.0 การเยาะเย้ยสิ่งคงไม่ง่ายเกินไป นั่นทำให้วิธีการคงที่และ "ความชั่วร้าย" (ในแง่การทดสอบหน่วย) หรือไม่? และถ้าเป็นเช่นนั้นทำไม resharper จึงต้องการให้ฉันทำอะไรที่คงที่ (การสมมติว่า resharper ไม่ได้เป็น "ความชั่วร้าย" ด้วย) ชี้แจง: ฉันกำลังพูดถึงสถานการณ์เมื่อคุณต้องการทดสอบหน่วยวิธีและวิธีการที่เรียกว่าวิธีการคงที่ในหน่วย / ระดับที่แตกต่างกัน โดยคำจำกัดความส่วนใหญ่ของการทดสอบหน่วยหากคุณเพียงให้วิธีการทดสอบเรียกวิธีการคงที่ในหน่วย / ชั้นเรียนอื่น ๆ แล้วคุณไม่ได้ทดสอบหน่วยคุณกำลังทดสอบบูรณาการ (มีประโยชน์ แต่ไม่ใช่การทดสอบหน่วย)

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

6
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ในการบังคับใช้คำสั่งการเรียกใช้การทดสอบหน่วย?
ฉันกำลังเขียนการทดสอบสำหรับโครงการที่ประกอบด้วยหลาย submodules กรณีทดสอบแต่ละข้อที่ฉันเขียนขึ้นจะทำงานแยกกันและฉันจะล้างข้อมูลทั้งหมดระหว่างการทดสอบ แม้ว่าการทดสอบจะดำเนินการอย่างเป็นอิสระ แต่ฉันกำลังพิจารณาที่จะบังคับใช้คำสั่งการดำเนินการเนื่องจากบางกรณีต้องการมากกว่าหนึ่ง submodule ตัวอย่างเช่น submodule กำลังสร้างข้อมูลและอีกอันหนึ่งกำลังเรียกใช้แบบสอบถามบนข้อมูล หาก submodule ที่สร้างข้อมูลมีข้อผิดพลาดการทดสอบสำหรับ submodule แบบสอบถามจะล้มเหลวเช่นกันแม้ว่า submodule นั้นจะทำงานได้ดี ฉันไม่สามารถทำงานกับข้อมูลจำลองได้เนื่องจากฟังก์ชั่นหลักที่ฉันกำลังทดสอบคือการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลกล่องดำซึ่งรับเฉพาะข้อมูลจาก submodule แรกเท่านั้น ในกรณีนี้มันตกลงเพื่อบังคับใช้คำสั่งการดำเนินการสำหรับการทดสอบหรือมันเป็นการปฏิบัติที่ไม่ดี? ฉันรู้สึกว่ามีกลิ่นในการตั้งค่านี้ แต่ฉันไม่สามารถหาวิธีที่ดีกว่า แก้ไข: คำถามมาจากวิธีการจัดโครงสร้างการทดสอบที่การทดสอบหนึ่งเป็นการตั้งค่าการทดสอบอื่น? เนื่องจากการทดสอบ "ก่อนหน้า" ไม่ใช่การตั้งค่า แต่ทดสอบรหัสที่ดำเนินการตั้งค่า

6
เหตุใดจึงยังคงเป็นส่วนหนึ่งของภาษา Java เมื่อแนะนำเป็นสองเท่าแทน?
ในทุกที่ที่ฉันดูมันบอกว่าdoubleมันยอดเยี่ยมกว่าfloatในเกือบทุกด้าน floatถูกทำให้ล้าสมัยโดยdoubleใน Java ดังนั้นทำไมมันยังคงใช้? ฉันเขียนโปรแกรมเป็นจำนวนมากกับ Libgdx และพวกเขาบังคับให้คุณใช้float(deltaTime, ฯลฯ ) แต่ดูเหมือนว่าสำหรับฉันแล้วdoubleมันจะง่ายกว่าที่จะทำงานด้วยในแง่ของการจัดเก็บและหน่วยความจำ ฉันยังอ่านเมื่อคุณใช้การลอยและเมื่อคุณใช้สองครั้งแต่ถ้าfloatเป็นจริงที่ดีสำหรับตัวเลขที่มีตัวเลขจำนวนมากหลังจากจุดทศนิยมแล้วทำไมเราไม่สามารถใช้หนึ่งในหลายรูปแบบของdouble? มีเหตุผลว่าทำไมคนอื่นยืนยันที่จะใช้ลอยแม้ว่ามันจะไม่ได้ประโยชน์อีกต่อไป? มันเป็นงานมากเกินไปที่จะเปลี่ยนแปลงทั้งหมดหรือไม่

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