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

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

7
PM กำลังเลือกการตั้งค่าที่ซับซ้อนเกินไปซึ่งไม่มีใครมีประสบการณ์กับ [ปิด]
เมื่อเร็ว ๆ นี้ฉันเริ่มโครงการที่ดูไม่ยากเกินไปแนวคิดนี้เป็นแอปพลิเคชั่นที่ค่อนข้างง่ายที่ต้องยอมรับอินพุตทุกครั้งจากนั้น (อาจจะ 10 เท่าต่อวัน) และพยายามดำเนินการบางอย่างกับพวกเขาและรวบรวมผลลัพธ์ทั้งหมด ในตอนท้าย แอปพลิเคชันนี้จะได้รับเว็บพอร์ทัลส่วนหน้าที่ลูกค้าสามารถใช้เพื่อดูผลลัพธ์ไม่ใช่วิทยาศาสตร์ด้านจรวดอย่างแน่นอน สำหรับสิ่งนี้ฉันเริ่มต้นใช้ประโยชน์อย่างชาญฉลาดของไลบรารี่ของ Python ( ThreadPoolExecutor) และใช้ไลบรารี่ที่ใช้งานง่ายสำหรับ front-end (ฉันเลือก Flask เพราะมันง่ายสำหรับผู้เริ่มต้นและง่ายต่อการบำรุงรักษาและทดสอบ) เมื่อเราอยู่ครึ่งทางของโครงการ PM ระบุว่าเราต้องใช้ความสามารถในการจัดคิวข้อความของบุคคลที่สามแทนการใช้เธรดและต้องใช้การปรับสมดุลโหลด และบริการอื่น ๆ อีกมากมายที่ไม่เคยมีประสบการณ์มาก่อน ในที่สุดสิ่งนี้นำไปสู่รหัสสปาเก็ตตี้ซึ่งเป็นงานที่ไม่สามารถทดสอบได้ (เนื่องจากความซับซ้อนของห้องสมุดบุคคลที่สามการแก้ไขรหัสไม่ทำงาน) และอาการปวดหัวเพราะไม่มีใครรู้ว่ามูลค่าเพิ่มของบริการเหล่านี้คืออะไร . ก่อนที่คุณจะพูดว่า "ใช่คุณควรใช้บริการเหล่านั้น" โปรดจำไว้ว่าไม่มีใครรู้วิธีใช้สิ่งเหล่านี้หรือแม้กระทั่งรู้ว่าสิ่งที่พวกเขาทำนอกเหนือจากการแนะนำโค้ดที่มีเงื่อนไขการแข่งขัน ฉันควรทำอย่างไรเกี่ยวกับเรื่องนี้? ณ จุดนี้มันจะมีค่าใช้จ่ายสูงเกินไปที่จะกลับไปใช้สิ่งที่เรามีและ PM นั้นตายตัวในการใช้บริการเหล่านี้แม้ว่าผลิตภัณฑ์ขั้นสุดท้ายจะแย่ลงกว่าตอนแรก มีประโยชน์ในการพูดคุยกับเขาบ้างไหม? ฉันขอเวลาเพิ่มหรือไม่? หรือคำตอบที่โหดร้ายฉันแค่โง่เกินไปสำหรับงานของฉันหรือเปล่า


3
อะไรคือสิ่งสำคัญในปัจจุบันของสบู่
ครั้งล่าสุดที่ฉันพบบริการที่ใช้ SOAP คือในระหว่างการฝึกงานใน บริษัท การเงินในปี 2556 นั่นคือช่วงเวลาที่ฉันเริ่มต้นทำงานด้านไอที ฉันจำได้ว่ามีสื่อการเรียนรู้เกี่ยวกับสบู่ในหลักสูตรวิศวกรรมศาสตร์ของฉัน นอกเหนือจากนั้นฉันไม่ได้ใช้ SOAP มากในช่วงอาชีพของฉัน ฉันถามคำถามนี้เพราะคำถามที่ว่า "ความแตกต่างระหว่าง SOAP และ REST" มาจากการสัมภาษณ์ครั้งล่าสุดของฉัน จากสิ่งที่ฉันรู้ (และสิ่งที่ฉันพบใน Google) SOAP เป็นโปรโตคอลที่มีการเชื่อมต่ออย่างแน่นหนาระหว่างไคลเอนต์และเซิร์ฟเวอร์สำหรับการแลกเปลี่ยนข้อมูลที่เกี่ยวข้องอย่างใกล้ชิดกับตรรกะทางธุรกิจ ในขณะที่ REST เป็นสถาปัตยกรรมไร้สัญชาติที่ยืดหยุ่นกว่าสำหรับการถ่ายโอนข้อมูล ใครสามารถโปรดแก้ไขให้ฉันถ้าฉันผิดเกี่ยวกับความแตกต่างระหว่าง SOAP และ REST นี้ นอกจากนี้ความสำคัญของสบู่ในปัจจุบันคืออะไร? ผู้คนยังคงพัฒนา API ที่ใช้ SOAP ใหม่หรือไม่
51 rest  api  web-services  soap 

7
แสดงความคิดเห็นสิ่งที่ต้องทำด้วยกำหนดเวลา?
พื้นหลัง ฉันกำลังทำงานในทีมที่ต้องการปรับใช้การปรับใช้แบบไม่ต้องหยุดทำงาน เราวางแผนที่จะใช้กลยุทธ์การปรับใช้สีน้ำเงิน / เขียวเพื่อให้บรรลุเป้าหมายนี้ สิ่งหนึ่งที่ฉันตระหนักในการทำวิจัยคือความซับซ้อนของการเปลี่ยนแปลงฐานข้อมูล การดำเนินการอย่างง่ายเช่นการเปลี่ยนชื่อคอลัมน์อาจใช้เวลา3 รอบเต็มจนกว่าจะเสร็จสมบูรณ์! สำหรับฉันดูเหมือนว่าการมีการเปลี่ยนแปลงอย่างเต็มรูปแบบนั้นต้องใช้เวลาหลายรอบการเปิดตัวทำให้เกิดข้อผิดพลาดของมนุษย์ได้มาก ในบทความที่เชื่อมโยงมันแสดงให้เห็นว่าการเปลี่ยนแปลงรหัสมีความจำเป็นสำหรับ 2 รุ่นและการโยกย้ายฐานข้อมูลเป็นสิ่งจำเป็นสำหรับ 3 รุ่น สิ่งที่ฉันกำลังมองหา ในปัจจุบันหากเราต้องการจำบางสิ่งเราสามารถสร้างตั๋วในระบบการจัดการปัญหาของเราซึ่งสร้างความยุ่งเหยิงและอาจถูกย้ายไปที่การวิ่งในภายหลังหรือการค้างโดยผู้บริหาร หรือเราสามารถสร้างความคิดเห็นสิ่งที่ต้องทำซึ่งอาจจะถูกลืมไปโดยสิ้นเชิง สิ่งที่ฉันกำลังมองหาคือวิธีที่ความคิดเห็นของ TODO สามารถกำหนดเส้นตายได้และระบบการรวมอย่างต่อเนื่องของเรา (ไม่แน่ใจว่าเราจะใช้ในปัจจุบัน) จะปฏิเสธการสร้างหากกำหนดเวลานี้หมดอายุ ตัวอย่างเช่นถ้าเราเปลี่ยนชื่อคอลัมน์เราสามารถสร้างการโยกย้ายครั้งแรกสำหรับมันและจากนั้นสองความคิดเห็นสิ่งที่ต้องทำเพื่อให้แน่ใจว่าการย้ายสองที่เหลือจะถูกสร้างขึ้น: // TODO by v55: Create migration to move constraints to new column, remove references to old column in app // TODO by v56: Create migration to drop …

5
“ ระดับ 256 บั๊ก” ในเกม Pacman สามารถถูกพิจารณาว่าเป็นเซกฟอลต์ที่ไม่มีการจัดการได้หรือไม่?
ฉันกำลังพยายามอธิบายข้อผิดพลาดในการแบ่งกลุ่มกับใครบางคนและฉันกำลังคิดถึงระดับ kill-screen ระดับ 256 ใน Pacman และวิธีที่มันถูกทริกเกอร์โดยจำนวนเต็มล้นและพฤติกรรมที่คล้ายคลึงกันคือ ความผิด ฉันต้องการบอกว่านี่เป็นตัวอย่างที่ดีของสิ่งที่ฉันเรียกว่า "segfault ที่ไม่สามารถจัดการได้" แต่ฉันอยากได้ความเห็นที่สองก่อนที่ฉันจะแพร่กระจายข้อมูลที่ผิดไป ฉันพยายามค้นหามัน แต่ทั้งหมดที่ฉันได้รับคือเอกสารเกี่ยวกับตัวมันเองรวมถึงความร่วมมือระหว่าง Hipster Whale และ Namco ดังนั้นคุณจะพิจารณาพฤติกรรมในระดับ 256 ของ Pacman ว่าเป็นตัวอย่างของการละเมิดการแบ่งส่วนที่ไม่ได้จัดการหรือไม่
51 memory  errors 

8
อะไรคือข้อเสียของการใช้งาน JavaScript รันไทม์แบบมัลติเธรด? [ปิด]
ฉันทำงานเกี่ยวกับการใช้งาน JavaScript แบบหลายเธรดสำหรับสัปดาห์ที่ผ่านมา ฉันมีหลักฐานของแนวคิดที่ทำใน C ++ โดยใช้ JavaScriptCore และเพิ่ม สถาปัตยกรรมนั้นง่าย: เมื่อรันไทม์เสร็จสิ้นการประเมินสคริปต์หลักมันจะเปิดตัวและเข้าร่วมเธรดพูลซึ่งเริ่มเลือกงานจากคิวลำดับความสำคัญที่ใช้ร่วมกันหากสองภารกิจพยายามเข้าถึงตัวแปรพร้อมกันมันจะถูกทำเครื่องหมายอะตอมมิก . ปัญหาคือเมื่อฉันแสดงการออกแบบนี้ให้โปรแกรมเมอร์ JavaScript ฉันได้รับความคิดเห็นเชิงลบอย่างมากและฉันไม่รู้ว่าทำไม แม้จะเป็นส่วนตัวพวกเขาทุกคนบอกว่าจาวาสคริปต์นั้นมีความหมายว่าเป็นเธรดเดี่ยวซึ่งไลบรารีที่มีอยู่จะต้องถูกเขียนใหม่และ gremlins จะวางไข่และกินสิ่งมีชีวิตทุกชนิดถ้าฉันทำงานต่อไป ตอนแรกฉันมีการนำ coroutine มาใช้ (โดยใช้บริบทเพิ่ม) ในสถานที่เช่นกัน แต่ฉันต้องทิ้ง (JavaScriptCore มีความรู้เกี่ยวกับสแต็ค) และฉันไม่ต้องการเสี่ยงต่อความโกรธของพวกเขาดังนั้นฉันจึงตัดสินใจไม่พูดถึงมัน คุณคิดอย่างไร? JavaScript หมายถึงเป็นเธรดเดี่ยวหรือไม่และควรปล่อยไว้ตามลำพังหรือไม่ เหตุใดทุกคนจึงไม่เห็นด้วยกับการรันไทม์ JavaScript ที่ทำงานพร้อมกัน แก้ไข: ขณะนี้โครงการอยู่ในGitHubทดลองด้วยตัวเองและแจ้งให้เราทราบว่าคุณคิดอย่างไร ต่อไปนี้เป็นรูปภาพของสัญญาที่รันบนคอร์ CPU ทั้งหมดพร้อมกันโดยไม่มีการช่วงชิง:

13
เพราะเหตุใดคุณสมบัติที่คล้ายกันของ Eval จึงถือเป็นความชั่วร้ายในทางตรงกันข้ามกับคุณลักษณะที่เป็นอันตรายอื่น ๆ
ส่วนใหญ่ภาษาสมัยใหม่ (ซึ่งจะถูกตีความอย่างใด) มีชนิดของบางEVALฟังก์ชั่น ฟังก์ชั่นดังกล่าวเรียกใช้งานรหัสภาษาโดยพลการส่วนใหญ่เวลาผ่านไปเป็นอาร์กิวเมนต์หลักเป็นสตริง (ภาษาที่แตกต่างกันอาจเพิ่มคุณสมบัติเพิ่มเติมให้กับฟังก์ชั่น eval) ฉันเข้าใจว่าผู้ใช้ไม่ควรได้รับอนุญาตให้ใช้งานฟังก์ชั่นนี้ ( แก้ไขเช่นนำข้อมูลเข้าโดยตรงหรือโดยอ้อมจากผู้ใช้ที่ต้องการส่งผ่านeval) โดยเฉพาะกับซอฟต์แวร์ฝั่งเซิร์ฟเวอร์เนื่องจากสามารถบังคับให้กระบวนการเรียกใช้รหัสที่เป็นอันตรายได้ ด้วยวิธีนี้บทเรียนและชุมชนบอกให้เราไม่ใช้การประเมินผล อย่างไรก็ตามมีหลายครั้งที่evalมีประโยชน์และใช้งานอยู่: กฎการเข้าถึงแบบกำหนดเองไปยังองค์ประกอบซอฟต์แวร์ (IIRC OpenERP มีวัตถุir.ruleที่สามารถใช้รหัสหลามแบบไดนามิก) การคำนวณที่กำหนดเองและ / หรือเกณฑ์ (OpenERP มีฟิลด์เช่นนั้นเพื่ออนุญาตการคำนวณรหัสที่กำหนดเอง) ตัวแยกวิเคราะห์รายงาน OpenERP (ใช่ฉันรู้ว่าฉันทำให้คุณประหลาดใจกับสิ่งที่ OpenERP ... แต่มันเป็นตัวอย่างหลักที่ฉันมี) เอฟเฟกต์การสะกดในบางเกม RPG ดังนั้นพวกเขาจึงมีการใช้งานที่ดีตราบใดที่พวกเขามีการใช้อย่างถูกต้อง ข้อได้เปรียบหลักคือคุณลักษณะนี้ช่วยให้ผู้ดูแลระบบสามารถเขียนโค้ดที่กำหนดเองโดยไม่ต้องสร้างไฟล์เพิ่มเติมและรวมไว้ด้วย (แม้ว่าเฟรมเวิร์กส่วนใหญ่ที่ใช้คุณสมบัติ eval ก็มีวิธีการระบุไฟล์โมดูลแพ็กเกจ ... เพื่ออ่านจาก) อย่างไรก็ตาม eval เป็นสิ่งชั่วร้ายในวัฒนธรรมสมัยนิยม สิ่งที่ต้องการเจาะเข้าไปในระบบของคุณอยู่ในใจ อย่างไรก็ตามมีฟังก์ชั่นอื่น ๆ ที่อาจเป็นอันตรายหากผู้ใช้เข้าถึง: ยกเลิกการเชื่อมโยงอ่านเขียน (ซีแมนทิกส์ไฟล์) การจัดสรรหน่วยความจำและเลขคณิตตัวชี้การเข้าถึงโมเดลฐานข้อมูล (แม้ว่าจะไม่พิจารณากรณี SQL-injectable) ดังนั้นโดยทั่วไปแล้วส่วนใหญ่เวลาที่โค้ดใด ๆไม่ถูกเขียนอย่างถูกต้องหรือไม่ได้ดูอย่างถูกต้อง …

8
การใช้ฐานข้อมูล NoSQL ทำไม่ได้กับชุดข้อมูลขนาดใหญ่ที่คุณต้องการค้นหาตามเนื้อหาหรือไม่?
ฉันได้เรียนรู้เกี่ยวกับฐานข้อมูล NoSQL เป็นเวลาหนึ่งสัปดาห์แล้ว ฉันเข้าใจถึงข้อดีของฐานข้อมูล NoSQL และกรณีการใช้งานจำนวนมากที่ยอดเยี่ยม แต่บ่อยครั้งที่คนเขียนบทความราวกับว่า NoSQL สามารถแทนที่ฐานข้อมูลเชิงสัมพันธ์ได้ และมีจุดที่ฉันไม่สามารถไปรอบ ๆ : ฐานข้อมูล NoSQL เป็นที่เก็บคีย์ - ค่า (มัก) แน่นอนว่าเป็นไปได้ที่จะเก็บทุกอย่างไว้ในที่เก็บคีย์ - ค่า (โดยการเข้ารหัสข้อมูลใน JSON, XML, อะไรก็ตาม) แต่ปัญหาที่ฉันเห็นคือคุณต้องได้รับข้อมูลจำนวนหนึ่งที่ตรงกับเกณฑ์เฉพาะในหลาย ๆ ใช้กรณี ในฐานข้อมูล NoSQL คุณมีเกณฑ์เดียวคุณสามารถค้นหาได้อย่างมีประสิทธิภาพ - กุญแจ ฐานข้อมูลเชิงสัมพันธ์ได้รับการปรับปรุงเพื่อค้นหาค่าใด ๆ ในแถวข้อมูลได้อย่างมีประสิทธิภาพ ดังนั้นฐานข้อมูล NoSQL จึงไม่ใช่ทางเลือกสำหรับการเก็บข้อมูลที่ต้องการค้นหาเนื้อหาของพวกเขา หรือฉันเข้าใจผิดบางอย่าง? ตัวอย่าง: คุณต้องจัดเก็บข้อมูลผู้ใช้สำหรับ webshop ในฐานข้อมูลเชิงสัมพันธ์คุณเก็บผู้ใช้ทุกคนเป็นแถวในusersตารางโดยมี ID, ชื่อ, ประเทศของเขา ฯลฯ ในฐานข้อมูล NoSQL …

2
ในความเป็นจริงแล้วสาขาของ Git คือ“ การทำแผนที่ endomunic endofunctors การทำแผนที่ submanifolds ของพื้นที่ Hilbert” หรือไม่?
ในขณะที่เราทุกคนรู้ว่า: Git ง่ายขึ้นเมื่อคุณเข้าใจสาขาคือการทำแผนที่ endofunctors การทำแผนที่โฮมโมมอนิฟิลของพื้นที่ฮิลแบร์ต ซึ่งดูเหมือนศัพท์แสง แต่ในทางกลับกัน ทั้งหมดบอกว่า monad ใน X เป็นเพียง monoid ในหมวดหมู่ของ endofunctors ของ X ด้วยผลิตภัณฑ์×แทนที่ด้วยองค์ประกอบของ endofunctors และหน่วยที่กำหนดโดย endofunctor ตัวตน เป็นตลกเพราะมันเป็นความจริง ฉันจะหลีกเลี่ยงการรวมข้อผิดพลาดโดยการอ่านข้อความง่าย ๆ นี้ได้ไหม
51 git 

4
หลักการตั้งชื่อที่โดดเด่นสำหรับตัวแปรใน PHP คือ camelcase หรือขีดล่าง? [ปิด]
ฉันทามติดูเหมือนว่าควรจะทำตามแบบแผนของแพลตฟอร์มที่พวกเขากำลังพัฒนา ดู: ขีดเส้นใต้หรืออูฐ? ข้อกำหนดการตั้งชื่อ: camelCase กับ underscore_case หรือไม่ อย่างไรก็ตาม, PHP ดูเหมือนจะไม่ปฏิบัติตามอย่างเคร่งครัดการประชุมใด ๆ ภายใน (ความผิดไม่มี) แม้สำหรับวิธีการและฟังก์ชั่น (เช่นmysqli::set_local_infile_default, PDOStatement::debugDumpParams); อย่างไรก็ตามเครื่องหมายขีดล่างดูเหมือนจะโดดเด่นในชื่อฟังก์ชัน อย่างไรก็ตามสิ่งที่ฉันไม่สามารถหาได้คือสิ่งนี้: อะไรคือหลักการตั้งชื่อที่เด่นชัดสำหรับตัวแปรใน PHP?

5
ภาชนะบรรจุ IOC ทำลายหลักการ OOP
วัตถุประสงค์ของ IOC Containers คืออะไร? เหตุผลที่รวมกันสามารถทำให้เป็นดังต่อไปนี้: เมื่อใช้หลักการพัฒนา OOP / SOLID การพึ่งพาการฉีดจะทำให้เกิดความยุ่งเหยิง ไม่ว่าคุณจะมีจุดเริ่มต้นระดับสูงสุดที่จัดการการพึ่งพาสำหรับหลายระดับต่ำกว่าตนเองและผ่านการอ้างอิงซ้ำผ่านการก่อสร้างซ้ำหรือคุณมีรหัสที่ซ้ำกันในรูปแบบโรงงาน / ผู้สร้างและอินเตอร์เฟสที่สร้างการพึ่งพาตามที่คุณต้องการ ไม่มีวิธี OOP / SOLID ในการดำเนินการนี้และมีรหัสสวยมาก หากข้อความก่อนหน้านั้นเป็นจริงแล้วตู้คอนเทนเนอร์ IOC จะทำอย่างไร เท่าที่ฉันรู้พวกเขาไม่ได้ใช้เทคนิคที่ไม่รู้จักบางอย่างที่ไม่สามารถทำได้ด้วยตนเอง DI ดังนั้นการอธิบายเพียงอย่างเดียวคือ IOC Containers ทำลายหลักการ OOP / SOLID โดยการใช้อ็อบเจกต์ส่วนตัวแบบคงที่ ตู้ IOC ทำลายหลักการต่อไปนี้หรือไม่? นี่เป็นคำถามจริงเนื่องจากฉันมีความเข้าใจที่ดี แต่มีความรู้สึกว่ามีคนอื่นมีความเข้าใจที่ดีขึ้น: การควบคุมขอบเขต ขอบเขตคือเหตุผลสำหรับเกือบทุกการตัดสินใจของฉันในการออกแบบรหัสของฉัน บล็อกท้องถิ่นโมดูลคงที่ / ทั่วโลก ขอบเขตควรชัดเจนมากที่สุดเท่าที่ระดับบล็อกและน้อยที่สุดที่คงที่ที่สุด คุณควรเห็นการประกาศการสร้างอินสแตนซ์และการสิ้นสุดวงจรชีวิต ฉันเชื่อมั่นในภาษาและ GC ในการจัดการขอบเขตตราบใดที่ฉันชัดเจนด้วย จากการวิจัยของฉันฉันพบว่า IOC Containers ตั้งค่าการพึ่งพาส่วนใหญ่หรือทั้งหมดเป็นแบบคงที่และควบคุมพวกมันผ่านการใช้งาน …

6
เหตุใดจึงไม่มีภาษาโปรแกรมอื่นที่คอมไพล์ไปยัง Python bytecode
ใน Java มีหลายภาษาที่คอมไพล์ไปยัง Java bytecode และสามารถรันบน JVM - Clojure, Groovy และ Scala เป็นภาษาหลักที่ฉันจำได้จากส่วนบนของหัว อย่างไรก็ตาม Python จะเปลี่ยนเป็น bytecode (ไฟล์. pyc) ก่อนที่จะถูกเรียกใช้โดย Python interpreter ฉันอาจจะงมงาย แต่ทำไมไม่มีภาษาการเขียนโปรแกรมอื่นใดที่คอมไพล์ไปยัง python bytecode? มันเป็นเพียงเพราะไม่มีใครใส่ใจหรือมีข้อ จำกัด หรือสิ่งกีดขวางบางอย่างที่ทำให้ยากลำบาก?

9
วิธีการวางแผนวิ่งให้สนุก
ไม่เพียง แต่การประชุมวางแผนวิ่งของเราไม่สนุกเท่านั้น แต่ยังน่ากลัวอย่างยิ่ง การประชุมน่าเบื่อและน่าเบื่อและใช้เวลาตลอดไป (วัน แต่มันรู้สึกเหมือนนานกว่านี้) นักพัฒนาบ่นเกี่ยวกับเรื่องนี้และความหวาดกลัวการวางแผนที่จะเกิดขึ้น กิจวัตรของเรานั้นค่อนข้างมาตรฐาน (เรื่องราวของผู้ใช้แทรกลงใน Backlog ที่มีลำดับความสำคัญ >> เรื่องนั้นถูกแยกออกจากงาน >> งานจะถูกประเมินในเวลาไม่กี่ชั่วโมง >> ทำซ้ำ) และฉันไม่สามารถเข้าใจได้ว่าเราทำอะไรผิด เราจะทำให้การประชุมสนุกยิ่งขึ้นได้อย่างไร? ... รายละเอียดเพิ่มเติมบางส่วนเพื่อตอบสนองคำขอข้อมูลเพิ่มเติม: เหตุใดจึงไม่ใส่รายการในมือและจัดลำดับความสำคัญก่อนที่จะเริ่มแจ้งกำหนดการ เรื่องราวของผู้ใช้จะถูกจัดลำดับความสำคัญอย่างแน่นอน; เราไม่รู้ว่าจะใช้เวลานานเท่าไหร่จนกว่าเราจะแยกงานออกเป็นชิ้น ๆ ! จากคำตอบ (ยอดเยี่ยม) ที่นี่ฉันเห็นว่าบางทีเราไม่ควรประเมินงานทั้งหมดเพียงเรื่องราวของผู้ใช้ เหตุผลที่เราประเมินงาน (ไม่ใช่เรื่อง) เป็นเพราะเราได้รับการประมาณการเรื่องผิดอย่างมหันต์ - แต่ฉันเดาว่าเป็นหัวข้อสำหรับคำถามที่แตกต่างกันโดยสิ้นเชิง ทำไมนักพัฒนาจึงบ่น? การประชุมนั้นยาวนาน การประชุมมีความซ้ำซากจำเจ เรื่องเล่าเรื่องเล่าเรื่องหลังจากภารกิจภาระงานดิ้นรน (ใช่ดิ้นรน) เพื่อประเมินระยะเวลาที่ต้องใช้และสิ่งที่เกี่ยวข้อง การประมาณงานทำให้ผู้ใช้ประมาณเรื่องดูไร้ค่า ยิ่งประชุมนานยิ่งมีสมาธิน้อยลงในห้อง เพื่อนร่วมงานที่มุ่งเน้นน้อยกว่าจะใช้เวลาในการประชุมนานขึ้น การพัฒนาความเกลียดชังเกลียวเวียนซ้ำ เราได้พิจารณาแยกการประชุมออกเป็นสองวันเพื่อให้ผู้คนสนใจ แต่นักพัฒนาซอฟต์แวร์จะไม่ได้ยิน วันหนึ่งของการวางแผนไม่ดีพอ ตอนนี้เราจะมีสอง ! ส่วนหนึ่งของปัญหาของเราคือเราเข้าไปดูรายละเอียดเล็กมาก …

13
นักพัฒนาซอฟต์แวร์ควรได้รับงบประมาณอุปกรณ์รายปีหรือไม่ [ปิด]
ฉันกำลังมองหาตำแหน่งใหม่กับ บริษัท ใหม่ ฉันเคยพูดคุยกับบางคนในอดีต (โดยทั่วไปไม่ใช่ที่ บริษัท นี้) ว่าพวกเขาได้รับงบประมาณรายปีเพื่อซื้อคอมพิวเตอร์เครื่องใหม่เพื่อให้ทันสมัย ตอนนี้ทำไมฉันถึงรู้สึกว่าคำถามนี้คุ้มค่าที่จะถามที่นี่คือโจเอลออกมาทันทีและบอกว่านายจ้างควรจะจ่ายเงินเพื่อซื้ออุปกรณ์ที่ดีที่สุดที่จะซื้อ ... ด้วยเหตุผลที่แน่นอน จากการทดสอบ Joel: 12 ขั้นตอนสู่การพัฒนาที่ดีขึ้น 9. คุณใช้เครื่องมือเงินที่ดีที่สุดที่สามารถซื้อได้หรือไม่? การเขียนโค้ดในภาษาที่คอมไพล์เป็นหนึ่งในสิ่งสุดท้ายที่ยังไม่สามารถทำได้ในคอมพิวเตอร์ที่ใช้ในบ้านในสวนหลากหลาย ... ทีมพัฒนาชั้นนำไม่ต้องทรมานโปรแกรมเมอร์ของพวกเขา แม้แต่ความผิดหวังเล็กน้อยที่เกิดจากการใช้เครื่องมือ underpowered เพิ่มขึ้นทำให้โปรแกรมเมอร์ไม่พอใจและไม่มีความสุข และโปรแกรมเมอร์ที่ไม่พอใจก็เป็นโปรแกรมเมอร์ที่ไม่ก่อผล ... ไม่มีใครรู้ว่าอุตสาหกรรมมีมาตรฐานดังกล่าวที่จะนำเสนอค่าเผื่อหรืองบประมาณ? ฉันไม่เคยทำงานให้ บริษัท แบบนี้มาก่อน แต่ฉันคิดว่าฉันควรจะโยนมันลงในแหวนเพื่อเจรจา ดูเหมือนว่าสมเหตุสมผล บริษัท ใหญ่ ๆ อย่าง MS, Google และ Apple จัดการเรื่องนี้ได้อย่างไร ถ้าคุณบอกว่าใช่ให้ช่วง ... ฉันได้รับการบอกตัวเลขจาก $ 5k ถึง $ 10k ดูเหมือนจะสูงสำหรับฉัน แต่เดี๋ยวก่อนฉันยินดีที่จะรับมัน

5
รับรายการแบบสุ่มถ่วงน้ำหนัก
ยกตัวอย่างเช่นฉันมีตารางนี้ + ----------------- + | ผลไม้ | น้ำหนัก + ----------------- + | แอปเปิ้ล 4 | | ส้ม 2 | | มะนาว 1 | + ----------------- + ฉันต้องการคืนผลไม้แบบสุ่ม แต่แอปเปิ้ลควรจะเลือก 4 ครั้งบ่อยเท่ามะนาวและ 2 ครั้งบ่อยเท่าส้ม ในกรณีทั่วไปมากขึ้นควรเป็นf(weight)บ่อยครั้ง อัลกอริทึมทั่วไปที่ดีในการใช้พฤติกรรมนี้คืออะไร หรืออาจจะมีอัญมณีบางอย่างที่พร้อมใน Ruby? :) PS ฉันใช้อัลกอริทึมปัจจุบันใน Ruby https://github.com/fl00r/pickup
51 algorithms  ruby  math  random 

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