زمان در مهندسی نرم افزار

Date and Time in software engineering

حتمی برای شما هم نگرانی بوده که چطور با تاریخ و یا بهتر بگم زمان کار کنید.

زمان به صورت ذاتی پدیده پیچیده ای هست، در دنیای فیزیک همیشه سعی شده طوری بهش پرداخته بشه که بشه معادلات رو باهاش حل کرد. نمود کامل پیچیدگی زمان رو توی فیلم Interstellar دیدم، اونجایی که زمان در سیاره میلر به دلیل گرانش گارگانچوا (سیاه چاله ای که سیاره میلر در نزدیکی اون هست) به شدت کند تر می گذرد به طوری که بعد از برگشت به فضاپیمای اصلی 23 سال زمان سپری شده !

در دنیای نرم افزار هم دردسری مشابه داریم، زمان مفهومی یکتا نیست و در شرایط و سیستم های مختلف ممکن است معانی مختلفی داشته باشد.

علاوه بر تمام این مشکلات، ترمینولوژی های زیادی هم در این میان استفاده می شوند.

Date, Date Time, Time, Timespan, Timestamp, TimeZone, UTC, Zulu, ISO 8601 و …

مساله به اینجا خاتمه پیدا نمی کند، مساله بعدی نحوه نگهداری زمان است، چطور در پایگاه های دادمون زمان رو نگه داریم که بازیابیش و تبدیلش ممکن باشه؟ از چه استانداردی استفاده کنیم ؟ از کدوم نوع داده ای استفاده کنیم؟ text, date و یا حتی int یا شایدم long؟

تموم شد ؟ نه ! هنوز هم مشکلاتی با زمان داریم. چطور تبدیلش کنیم ؟ چطوری زمان هایی که توی محصولمون که در کشور های مختلف استفاده میشه رو ذخیره کنیم که برای همه یک مفهوم درست داشته باشه ؟

پادکست رو می تونید از طریق زیر گوش بدید.

Time in software world (castbox.fm)