ฉันกำลังคิดถึงธุรกิจของตัวเองที่บ้านและภรรยาของฉันมาหาฉันและพูดว่า
ที่รัก .. คุณสามารถพิมพ์ Day Light Saving ทั่วโลกสำหรับปี 2018 ในคอนโซลได้หรือไม่? ฉันต้องตรวจสอบบางอย่าง
และฉันก็มีความสุขสุด ๆ เพราะนั่นคือสิ่งที่ฉันรอมาตลอดทั้งชีวิตกับประสบการณ์ Java ของฉันและเกิดขึ้นกับ:
import java.time.*;
import java.util.Set;
class App {
void dayLightSavings() {
final Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
availableZoneIds.forEach(
zoneId -> {
LocalDateTime dateTime = LocalDateTime.of(
LocalDate.of(2018, 1, 1),
LocalTime.of(0, 0, 0)
);
ZonedDateTime now = ZonedDateTime.of(dateTime, ZoneId.of(zoneId));
while (2018 == now.getYear()) {
int hour = now.getHour();
now = now.plusHours(1);
if (now.getHour() == hour) {
System.out.println(now);
}
}
}
);
}
}
แต่จากนั้นเธอบอกว่าเธอแค่ทดสอบฉันว่าฉันเป็นวิศวกรซอฟต์แวร์ที่ผ่านการฝึกอบรมอย่างมีจริยธรรมหรือไม่และบอกฉันว่าดูเหมือนว่าฉันไม่ได้เป็นแบบนั้น (เอามาจากที่นี่ )
ควรสังเกตว่าไม่มีวิศวกรซอฟต์แวร์ที่ผ่านการฝึกอบรมอย่างมีจริยธรรมจะยินยอมให้เขียนขั้นตอน DestroyBaghdad จรรยาบรรณทางวิชาชีพขั้นพื้นฐานจะต้องการให้เขาเขียนขั้นตอนการทำลาย (DestroyCity) เพื่อให้แบกแดดเป็นพารามิเตอร์
และฉันก็ชอบดีโอเคคุณได้รับฉัน .. ผ่านปีที่คุณชอบที่นี่คุณไป:
import java.time.*;
import java.util.Set;
class App {
void dayLightSavings(int year) {
final Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
availableZoneIds.forEach(
zoneId -> {
LocalDateTime dateTime = LocalDateTime.of(
LocalDate.of(year, 1, 1),
LocalTime.of(0, 0, 0)
);
ZonedDateTime now = ZonedDateTime.of(dateTime, ZoneId.of(zoneId));
while (year == now.getYear()) {
// rest is same..
แต่ฉันจะรู้ได้อย่างไรว่าจะเพิ่มพารามิเตอร์ ท้ายที่สุดเธออาจพูดว่า ..
- เธอต้องการผ่านฟอร์แมตสตริงแบบกำหนดเองบางทีเธออาจไม่ชอบรูปแบบที่ฉันพิมพ์อยู่แล้ว:
2018-10-28T02:00+01:00[Arctic/Longyearbyen]
void dayLightSavings(int year, DateTimeFormatter dtf)
- เธอสนใจเฉพาะช่วงเวลาบางเดือนเท่านั้น
void dayLightSavings(int year, DateTimeFormatter dtf, int monthStart, int monthEnd)
- เธอสนใจในบางช่วงเวลา
void dayLightSavings(int year, DateTimeFormatter dtf, int monthStart, int monthEnd, int hourStart, int hourend)
หากคุณกำลังมองหาคำถามที่เป็นรูปธรรม:
ถ้าdestroyCity(City city)
จะดีกว่าdestroyBaghdad()
เป็นtakeActionOnCity(Action action, City city)
ดียิ่งขึ้น? ทำไม / ทำไมไม่
หลังจากที่ทุกคนครั้งแรกที่ผมสามารถเรียกมันด้วยAction.DESTROY
แล้วAction.REBUILD
, ไม่ได้หรือไม่
แต่การกระทำในเมืองนั้นไม่เพียงพอสำหรับฉันแล้วtakeActionOnGeographicArea(Action action, GeographicalArea GeographicalArea)
ล่ะ หลังจากทั้งหมดฉันไม่ต้องการโทร:
takeActionOnCity(Action.DESTORY, City.BAGHDAD);
แล้วก็
takeActionOnCity(Action.DESTORY, City.ERBIL);
และเมื่อฉันสามารถทำได้:
takeActionOnGeographicArea(Action.DESTORY, Country.IRAQ);
ป.ล. ฉันสร้างคำถามขึ้นมาโดยอ้างข้อความที่กล่าวถึงฉันไม่มีอะไรเทียบกับประเทศศาสนาเชื้อชาติหรืออะไรในโลกนี้ ฉันแค่พยายามทำจุด
destroyCity(target)
เป็นวิธีที่ผิดจรรยาบรรณมากกว่าdestroyBagdad()
! สัตว์ประหลาดชนิดใดที่เขียนโปรแกรมเพื่อล้างเมืองให้เมืองใด ๆ ในโลกนี้อยู่คนเดียว? ถ้าระบบถูกบุกรุกล่ะ! นอกจากนี้การจัดการเวลา / ทรัพยากร (ความพยายามลงทุน) เกี่ยวข้องกับจริยธรรมอย่างไร? ตราบใดที่สัญญาทางวาจา / ลายลักษณ์อักษรเสร็จสมบูรณ์ตามที่ตกลงกันไว้