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

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

6
เมื่อใดจะไปได้อย่างคล่องแคล่วใน C #?
ในหลาย ๆ แง่มุมฉันชอบความคิดของอินเทอร์เฟซ Fluent แต่ด้วยคุณลักษณะที่ทันสมัยทั้งหมดของ C # (initializers, lambdas, พารามิเตอร์ที่มีชื่อ) ฉันคิดว่าตัวเองคิดว่า "มันคุ้มค่าหรือไม่" และ "นี่เป็นรูปแบบที่เหมาะสมหรือไม่ ใช้?". ใครช่วยฉันได้บ้างถ้าไม่ใช่วิธีปฏิบัติที่ได้รับการยอมรับอย่างน้อยประสบการณ์ของพวกเขาหรือเมทริกซ์การตัดสินใจว่าจะใช้รูปแบบ Fluent ได้เมื่อใด สรุป: กฎง่ายๆที่ดีจากคำตอบจนถึงตอนนี้: ส่วนต่อประสานที่คล่องแคล่วช่วยได้อย่างมากเมื่อคุณมีการดำเนินการมากกว่าตัวตั้งค่าเนื่องจากการโทรได้รับประโยชน์มากขึ้นจากบริบทการส่งผ่าน อินเทอร์เฟซที่ใช้งานได้ควรถือเป็นเลเยอร์ที่อยู่เหนือสุดของ api ไม่ใช่วิธีการใช้งานเพียงอย่างเดียว คุณสมบัติที่ทันสมัยเช่น lambdas, initializers และพารามิเตอร์ที่มีชื่อสามารถทำงานได้ด้วยมือเพื่อให้ส่วนต่อประสานที่คล่องแคล่วเป็นมิตรมากยิ่งขึ้น นี่คือตัวอย่างของสิ่งที่ฉันหมายถึงโดยคุณสมบัติที่ทันสมัยทำให้รู้สึกไม่จำเป็น ยกตัวอย่างเช่นอินเทอร์เฟซแบบคล่องแคล่ว (อาจเป็นตัวอย่างไม่ดี) ที่ให้ฉันสร้างพนักงานเช่น: Employees.CreateNew().WithFirstName("Peter") .WithLastName("Gibbons") .WithManager() .WithFirstName("Bill") .WithLastName("Lumbergh") .WithTitle("Manager") .WithDepartment("Y2K"); สามารถเขียนด้วย initializers ได้อย่างง่ายดายเช่น: Employees.Add(new Employee() { FirstName = "Peter", LastName = …
78 c#  .net 

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

17
แนวทางการเข้ารหัส: วิธีการไม่ควรมีคำสั่งมากกว่า 7 รายการ?
ฉันกำลังดูแนวทางการเข้ารหัสของ AvSolสำหรับ C # และฉันเห็นด้วยกับเกือบทุกอย่าง แต่ฉันอยากรู้จริง ๆ ว่าคนอื่นคิดอย่างไรกับกฎข้อหนึ่ง AV1500 วิธีการไม่ควรเกิน 7 ข้อความวิธีที่ต้องใช้มากกว่า 7 ข้อความกำลังทำมากเกินไปหรือมีความรับผิดชอบมากเกินไป นอกจากนี้ยังต้องใช้ความคิดของมนุษย์ในการวิเคราะห์งบที่แน่นอนเพื่อให้เข้าใจว่ารหัสกำลังทำอะไรอยู่ ทำลายมันลงในวิธีการเล็ก ๆ และเน้นด้วยชื่ออธิบายตนเอง คุณส่วนใหญ่ปฏิบัติตามกฎนี้หรือไม่? แม้ว่าจะมีน้อยที่จะถูกบันทึกจากการสร้างวิธีการใหม่ (รหัสของคุณยังคงแห้ง ) นอกเหนือจากการอ่านที่เพิ่มขึ้นอย่างมาก? และหมายเลขของคุณยังต่ำอยู่ที่ 7 หรือไม่ ฉันจะมีแนวโน้มมากขึ้นต่อ 10 ฉันไม่ได้บอกว่าฉันละเมิดกฎนี้ทั่วทุกที่ - ในทางตรงกันข้ามวิธีการของฉันเล็ก 95% และเน้น แต่บอกว่าคุณไม่ควรละเมิดกฎนี้จริงๆพัดฉันออกไป ฉันแค่อยากจะรู้ว่าสิ่งที่ทุกคนคิดว่าไม่เคยละเมิดกฎนี้ (มัน '1' ในมาตรฐานการเข้ารหัส - ความหมายไม่เคยทำเช่นนี้) แต่ฉันคิดว่าคุณมีปัญหาในการค้นหา codebase ที่ไม่ได้

12
มีอะไรผิดปกติกับจุดสิ้นสุดที่ส่งคืน HTML แทนที่จะเป็นข้อมูล JSON
เมื่อฉันเริ่มเรียนรู้ PHP ครั้งแรก (ประมาณ 5 หรือ 6 ปีก่อน) ฉันเรียนรู้เกี่ยวกับAjaxและฉันผ่าน "ขั้นตอน": เซิร์ฟเวอร์ของคุณส่งคืนข้อมูล HTML และคุณวางไว้ในinnerHTML ของ DOM คุณเรียนรู้เกี่ยวกับรูปแบบการถ่ายโอนข้อมูลเช่น XML (และพูดว่า "oooh นั่นคือสิ่งที่มันใช้สำหรับ") แล้ว JSON คุณส่งคืน JSON และสร้าง UI ของคุณโดยใช้รหัสวานิลลา JavaScript คุณย้ายไปที่ jQuery คุณเรียนรู้เกี่ยวกับ API, ส่วนหัว, รหัสสถานะ HTTP, REST , CORSและBootstrap คุณเรียนรู้SPAและเฟรมเวิร์กส่วนหน้า ( React , Vue.jsและAngularJS ) และมาตรฐาน JSON API คุณได้รับรหัสดั้งเดิมขององค์กรและจากการตรวจสอบพบว่าพวกเขาทำสิ่งที่อธิบายไว้ในขั้นตอนที่ 1 ขณะที่ฉันทำงานกับ …
77 design  ajax 

11
เหตุใดจึงไม่ลบวัตถุ Java ทันทีหลังจากที่ไม่มีการอ้างอิงอีกต่อไป
ใน Java ทันทีที่วัตถุไม่มีการอ้างอิงใด ๆ อีกต่อไปวัตถุนั้นจะมีสิทธิ์ในการลบ แต่ JVM จะตัดสินใจเมื่อวัตถุถูกลบจริง ในการใช้คำศัพท์ Objective-C การอ้างอิง Java ทั้งหมดจะ "แข็งแรง" โดยเนื้อแท้ อย่างไรก็ตามใน Objective-C หากวัตถุไม่มีการอ้างอิงที่แข็งแกร่งอีกต่อไปวัตถุจะถูกลบทันที เหตุใดจึงไม่เป็นเช่นนี้ใน Java

6
หมายเลขมายากลทั้งหมดถูกสร้างขึ้นเหมือนกันหรือไม่?
ในโครงการที่ผ่านมาผมจำเป็นต้องมีการแปลงจากไบต์กิโลไบต์ กิบิไบต์ รหัสตรงไปตรงมามากพอ: var kBval = byteVal / 1024; หลังจากเขียนสิ่งนั้นฉันได้ฟังก์ชั่นที่เหลือและทำงานต่อไป แต่ต่อมาฉันเริ่มสงสัยว่าฉันเพิ่งฝังหมายเลขเวทย์มนตร์ไว้ในรหัสของฉันหรือไม่ ส่วนหนึ่งของฉันบอกว่ามันใช้ได้เพราะจำนวนนั้นเป็นค่าคงที่คงที่และควรเข้าใจได้ง่าย BYTES_PER_KBYTEแต่ส่วนหนึ่งของฉันอีกคิดว่ามันจะได้รับสุดชัดเจนว่าในห่อคงที่ที่กำหนดไว้เช่น ดังนั้นตัวเลขที่เป็นค่าคงที่ที่รู้จักกันดีจริง ๆ ทั้งหมดนั้นวิเศษหรือไม่? คำถามที่เกี่ยวข้อง: เมื่อไหร่ที่มีจำนวนเวทมนตร์? และทุกหมายเลขในรหัสถือเป็น "หมายเลขวิเศษ" หรือไม่? - คล้ายกัน แต่มีคำถามที่กว้างกว่าคำถามที่ฉันถาม คำถามของฉันมุ่งเน้นไปที่ตัวเลขคงที่ที่รู้จักกันดีซึ่งไม่ได้ระบุไว้ในคำถามเหล่านั้น กำจัดหมายเลขเวทย์มนตร์: เมื่อไหร่เวลาที่จะพูดว่า "ไม่" มีความเกี่ยวข้องเช่นกัน แต่มุ่งเน้นไปที่การปรับโครงสร้างใหม่เมื่อเทียบกับจำนวนที่คงที่หรือไม่นั้นเป็นจำนวนเวทย์มนตร์

7
รหัสแรกเทียบกับฐานข้อมูลก่อน
เมื่อฉันออกแบบและสร้างซอฟต์แวร์ที่ฉันทำงานอยู่ฉันมักจะออกแบบและสร้างตาราง SQL ส่วนหลังก่อนแล้วจึงไปยังการเขียนโปรแกรมจริง โครงการที่ฉันกำลังทำอยู่ทำให้ฉันงงงวย นี่อาจเป็นเพราะการขาดข้อกำหนดที่ดีและมั่นคง แต่น่าเสียดายที่ฉันสามารถทำได้ในครั้งนี้ มันเป็นสถานการณ์แบบ "ไปทำให้มันเกิดขึ้น" แต่ฉันเชือนแช ฉันกำลังคิดที่จะพลิกเวิร์กโฟลว์ของฉันบนหัวและสร้าง UI และคลาสโมเดลข้อมูลเป็นครั้งแรกด้วยความหวังว่าการทำงานที่ออกมาจะทำให้ฉันชัดเจนว่าสคีมาฐานข้อมูลของฉันจะเป็นอย่างไรในที่สุด นี่เป็นความคิดที่ดีหรือไม่? ฉันกังวลว่าฉันจะจบลงด้วย UI และยังไม่ทราบวิธีการจัดทำฐานข้อมูล หากใครอยากรู้ฉันกำลังใช้ SQL Server เป็นแบ็กเอนด์และ MS Access เป็นแอพพลิเคชั่นส่วนหน้า (การเข้าถึงไม่ใช่ตัวเลือกของฉันเช่นกันดังนั้นโปรดอย่าเกลียดมันแย่เกินไป)

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

11
ทำไมซอฟต์แวร์ OS จึงมีความเฉพาะ?
ฉันพยายามหารายละเอียดทางเทคนิคว่าทำไมซอฟต์แวร์ที่ผลิตโดยใช้ภาษาการเขียนโปรแกรมสำหรับระบบปฏิบัติการบางระบบสามารถใช้งานได้กับพวกเขาเท่านั้น ฉันเข้าใจว่าไบนารีนั้นมีความเฉพาะสำหรับโปรเซสเซอร์บางตัวเนื่องจากภาษาเครื่องเฉพาะของโปรเซสเซอร์ที่พวกเขาเข้าใจและชุดคำสั่งต่างกันระหว่างโปรเซสเซอร์ที่ต่างกัน แต่ความจำเพาะของระบบปฏิบัติการมาจากไหน? ฉันเคยคิดว่ามันเป็น API ที่จัดทำโดยระบบปฏิบัติการ แต่จากนั้นฉันเห็นแผนภาพนี้ในหนังสือ: ระบบปฏิบัติการ - ภายในและหลักการออกแบบ 7 ed - W. Stallings (Pearson, 2012) อย่างที่คุณเห็น APIs ไม่ได้ระบุว่าเป็นส่วนหนึ่งของระบบปฏิบัติการ ตัวอย่างเช่นถ้าฉันสร้างโปรแกรมอย่างง่ายใน C โดยใช้รหัสต่อไปนี้: #include<stdio.h> main() { printf("Hello World"); } คอมไพเลอร์ทำอะไรที่เฉพาะกับ OS เมื่อทำการคอมไพล์หรือไม่

10
ทำไมอาร์เรย์ C ถึงไม่ติดตามความยาวของมัน
อะไรคือเหตุผลที่อยู่เบื้องหลังไม่แน่ชัดเก็บความยาวของอาร์เรย์กับอาร์เรย์ในC? วิธีที่ฉันเห็นมันมีเหตุผลมากมายที่ต้องทำเช่นนั้นแต่มีไม่มากนักในการสนับสนุนมาตรฐาน (C89) ตัวอย่างเช่น การมีความยาวที่มีอยู่ในบัฟเฟอร์สามารถป้องกันไม่ให้บัฟเฟอร์มีค่าเกินได้ สไตล์ Java arr.lengthมีทั้งชัดเจนและหลีกเลี่ยงโปรแกรมเมอร์จากการรักษาจำนวนมากintในกองหากจัดการกับหลายอาร์เรย์ พารามิเตอร์ฟังก์ชั่นกลายเป็นจุดศูนย์กลางมากขึ้น แต่บางทีเหตุผลที่จูงใจที่สุดในความคิดของฉันก็คือโดยปกติแล้วจะไม่มีการบันทึกที่ว่างหากไม่รักษาความยาว ฉันอยากจะบอกว่าการใช้อาร์เรย์ส่วนใหญ่เกี่ยวข้องกับการจัดสรรแบบไดนามิก จริงอาจมีบางกรณีที่ผู้คนใช้อาร์เรย์ที่จัดสรรในสแต็ก แต่นั่นเป็นเพียงการเรียกใช้ฟังก์ชันเดียว * - สแต็กสามารถจัดการ 4 หรือ 8 ไบต์พิเศษได้ เนื่องจากตัวจัดการฮีปต้องติดตามขนาดบล็อกว่างที่ใช้โดยอาร์เรย์ที่จัดสรรแบบไดนามิกอยู่แล้วเหตุใดจึงไม่ทำให้ข้อมูลนั้นสามารถใช้งานได้ (และเพิ่มกฎเพิ่มเติมตรวจสอบ ณ เวลาคอมไพล์ซึ่งไม่สามารถจัดการความยาวได้อย่างชัดเจน ชอบยิงตัวเองด้วยการเดินเท้า) สิ่งเดียวที่ฉันคิดได้ในอีกด้านหนึ่งคือการติดตามความยาวอาจทำให้คอมไพเลอร์เรียบง่ายขึ้น แต่ไม่ง่ายกว่านั้นมากนัก * ในทางเทคนิคเราสามารถเขียนฟังก์ชั่นแบบเรียกซ้ำด้วยอาเรย์ที่มีที่จัดเก็บอัตโนมัติและในกรณีนี้ (ที่ซับซ้อนมาก) การจัดเก็บความยาวอาจส่งผลให้การใช้พื้นที่มีประสิทธิภาพมากขึ้น
77 c 

11
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะแก้ไขโค้ดอย่างเคร่งครัดเพื่อการทดสอบ
ฉันมีการถกเถียงกับเพื่อนร่วมงานโปรแกรมเมอร์เกี่ยวกับว่ามันเป็นการปฏิบัติที่ดีหรือไม่ดีในการปรับเปลี่ยนรหัสการทำงานเพียงเพื่อให้สามารถทดสอบได้ (ผ่านการทดสอบหน่วยตัวอย่าง) ความคิดเห็นของฉันคือว่ามันใช้ได้ภายในขอบเขตของการบำรุงรักษาวัตถุที่ดีและการปฏิบัติด้านวิศวกรรมซอฟต์แวร์ที่แน่นอน (ไม่ใช่ "ทำให้ทุกอย่างเป็นสาธารณะ" ฯลฯ ) ความคิดเห็นของเพื่อนร่วมงานของฉันคือการแก้ไขรหัส (ใช้งานได้) เพื่อการทดสอบเท่านั้นผิด เป็นเพียงตัวอย่างง่ายๆลองนึกถึงโค้ดชิ้นนี้ที่ใช้โดยองค์ประกอบบางส่วน (เขียนใน C #): public void DoSomethingOnAllTypes() { var types = Assembly.GetExecutingAssembly().GetTypes(); foreach (var currentType in types) { // do something with this type (e.g: read it's attributes, process, etc). } } ฉันได้แนะนำว่ารหัสนี้สามารถแก้ไขเพื่อเรียกวิธีอื่นที่จะทำงานจริง: public void DoSomething(Assembly asm) { // not …

11
อ่านนิพจน์ปกติโดยไม่สูญเสียพลังหรือไม่
โปรแกรมเมอร์หลายคนรู้ว่าความสุขของการแสดงออกอย่างรวดเร็วเป็นประจำทุกวันนี้มักมีความช่วยเหลือจากเว็บเซอร์วิสบางอย่างหรือมากกว่านั้นในการโต้ตอบแบบโต้ตอบหรืออาจจะเขียนสคริปต์ขนาดเล็กที่มีนิพจน์ทั่วไปที่กำลังพัฒนาอยู่และชุดกรณีทดสอบ . ไม่ว่าในกรณีใดกระบวนการนี้จะทำซ้ำและค่อนข้างเร็ว: ทำการแฮ็กที่สตริงที่มีลักษณะที่เป็นความลับจนกว่าจะจับคู่และจับภาพสิ่งที่คุณต้องการและจะปฏิเสธสิ่งที่คุณไม่ต้องการ สำหรับผลกรณีง่าย ๆ อาจเป็นแบบนี้ในฐานะ Java regexp: Pattern re = Pattern.compile( "^\\s*(?:(?:([\\d]+)\\s*:\\s*)?(?:([\\d]+)\\s*:\\s*))?([\\d]+)(?:\\s*[.,]\\s*([0-9]+))?\\s*$" ); โปรแกรมเมอร์หลายคนรู้ถึงความเจ็บปวดที่ต้องแก้ไขนิพจน์ปกติหรือเพียงแค่เขียนโค้ดรอบนิพจน์ปกติในฐานรหัสดั้งเดิม ด้วยการแก้ไขเล็กน้อยเพื่อแยกมันออกไปข้างต้น regexp ยังง่ายต่อการเข้าใจสำหรับทุกคนที่คุ้นเคยกับ regexps และทหารผ่านศึก regexp ควรเห็นทันทีว่ามันทำอะไร (ตอบที่ท้ายโพสต์ในกรณีที่มีคนต้องการออกกำลังกาย ในการหาตัวเอง) อย่างไรก็ตามสิ่งที่ไม่จำเป็นต้องซับซ้อนมากขึ้นสำหรับ regexp ที่จะกลายเป็นสิ่งที่เขียนอย่างเดียวและแม้กระทั่งกับเอกสารขยัน (ซึ่งทุกคนแน่นอนสำหรับ regexps ที่ซับซ้อนทั้งหมดที่พวกเขาเขียน ... ) การปรับเปลี่ยน regexps กลายเป็น งานที่น่ากลัว มันอาจเป็นงานที่อันตรายมากเช่นกันหาก regexp ไม่ได้ทำการทดสอบอย่างระมัดระวัง (แต่ทุกคนแน่นอนมีการทดสอบหน่วยที่ครอบคลุมสำหรับ regexps ที่ซับซ้อนทั้งหมดทั้งในเชิงบวกและเชิงลบ ... ) เรื่องสั้นสั้น ๆมีวิธีแก้ไข / อ่านทางเลือกสำหรับการแสดงออกปกติโดยไม่สูญเสียพลังของพวกเขา? regexp …

3
ควรใช้คุกกี้ใน RESTful API หรือไม่
ฉันสนใจเป็นพิเศษในการที่ผู้ใช้ทำการดำเนินงานที่ได้รับอนุญาต / รับรองความถูกต้องบนเว็บ API คุกกี้การรับรองความถูกต้องเข้ากันได้กับปรัชญา REST และทำไม

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

6
ฉันจะกำหนดราคาสำหรับการเขียนซอฟต์แวร์ที่กำหนดเองได้อย่างไร [ปิด]
สำหรับซอฟต์แวร์ที่กำหนดเองซึ่งอาจต้องใช้เวลาหนึ่งปีหรือมากกว่าในการพัฒนาฉันจะดำเนินการเกี่ยวกับการพิจารณาว่าจะเรียกเก็บเงินในฐานะที่ปรึกษาอย่างไร ฉันประสบความยากลำบากในการหาตัวเลขและการค้นหาออนไลน์ให้ตัวเลขที่แตกต่างกันมากมาย (ระหว่าง $ 55 / ชั่วโมงและ $ 300 / ชม.) ฉันไม่ต้องการที่จะยิงน้อยเกินไปเพราะมันจะใช้เวลามาก (และฉันเลื่อนการศึกษาของฉันสำหรับโครงการนี้) ฉันยังไม่ต้องการที่จะยิงสูงเกินไปและได้รับรูปลักษณ์ที่ไม่พึงประสงค์และต้องการเหตุผล FWIW ฉันอาศัยอยู่ในแคนาดาและมีประมาณ ประสบการณ์การพัฒนา 10 ปี ฉันอ่าน "เอาเงินเดือนของคุณแล้วหารด้วย 1,000" กฎง่ายๆ แต่สิ่งนี้คือฉันไม่มีเงินเดือน ขณะนี้ฉันเพิ่งทำงานเขียนโปรแกรมขนาดเล็กสำหรับเพื่อนที่กำลังเริ่มต้น บริษัท การตลาดการกำหนดราคางานแต่ละงานค่อนข้างตามอำเภอใจ ฉันไม่รู้ว่าฉันจะทำอะไรในช่วงหนึ่งปีที่ทำ แต่มันจะต่ำอย่างไม่น่าเชื่อ ความรับผิดชอบของฉันสำหรับโครงการจะเป็นสถาปัตยกรรมการเขียนโปรแกรมฐานข้อมูลเซิร์ฟเวอร์และ UX ในระดับหนึ่ง มันจะเป็นบริการสาธารณะทางเว็บดังนั้นฉันจะต้องใช้ความพยายามอย่างมากในการรักษาความปลอดภัยและความยืดหยุ่น คำแนะนำหรือประสบการณ์ใด ๆ ?

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