じろう

2019年11月02日に参加

学習履歴詳細

[基本情報]過去問道場でマネジメント系の問題を53問解いた [Ruby]昨日やった日付の問題を井上さんも解いてくださったので、どう動いてるのかコードを読んだ

やったこと

基本情報

過去問道場

  • マネジメント系の問題を53問解いた
  • マネジメント系の問題とりあえず1周終了
  • 正解率62.3%

Ruby

paiza

  • 昨日解いた日付セットの問題を、井上さんが解いてくださった
  • そのコードの分析、どう動いてるかを追った
  • parse, find, strftimeの0詰めしない書き方を調べた

わかったこと

基本情報

  • PERT

  • アローダイヤグラム

    • 作業工程を丸と矢印と数字で表現した図
    • 状態を丸
    • 作業を矢印
    • かかる時間を数字で表現
  • PDM(プレシデンスダイアグラム法)

  • UPS(無停電電源)

    • Uninterruptble Power Supply
    • バッテリを内蔵し、入力電源異常時(停電など)に電力を供給するための装置
    • 瞬間的な停電への対策にもなる
  • RPO(目標復旧地点)

    • Recovery Point Objective
    • 損壊・紛失したデータを復旧させる際の「復旧目標に関わる指標」の1つ
    • データの古さ(世代)を表す
    • 例1:RPO=0秒:損壊する直前までに記録したデータを復旧しなければならない」
    • 例2:RPO=1日:損壊する1日前までを記録したデータを復旧しなければならない」
    • 例3::RPO=1週間:損壊する1週間前までを記録したデータを復旧しなければならない
    • 金融機関ではRPOはほぼゼロ秒に近いものになる
  • RTO(目標復旧時間)

    • Recovery Time Objective
    • 災害等で業務が停止した際に、あらかじめ決められた一定のレベルに復旧するまでの目標時間
    • 情報システムが障害などで停止した際に、復旧するまでの目標時間
    • 業務を停止させる事態の発生から、目標復旧レベル(RLO:Revocery Level Objective)で定められた重要な業務を再開できるようになるまでの目標時間を意味する
    • 事業継承計画(BCP:Businecc Continuity Plan)などを策定する際に定められる
  • RLO(目標復旧レベル)

    • Revocery Level Objective
    • RTO(目標復旧時間)内にどの程度の操業水準まで復旧させるかといったときの「どの程度」のこと
    • RTO(目標復旧時間)の単位が「時間」(秒・分・時間・週間・ヶ月・年)であるのに対して、RLO(目標復旧レベル)の単位は、「処理能力レベル」や「品質レベル」など想定する業務によって多種多様
    • 参考
    • リスク管理ナビ - 目標復旧レベル (RLO: Recovery Level Objective)

Ruby

Date.parse

  • 与えられた文字列を解析して、その情報に基づいて日付オブジェクトを生成する

パースとは

  • 文法に従って分析する、品詞を記述する、構文解析する、などの意味をもつ英単語
  • 一定の書式や文法に従って記述されたデータを解析し、プログラムで扱えるようなデータ構造の集合体に変換すること
  • 例: 2019-4-11という入力を解析して2019/4/11という日付オブジェクトに変換するのがDate.parse

strftimeで月日や時刻の0埋めを行わない書式設定

puts "#{input_date.strftime('年%m月%d日')}"

# これだと月日が0埋めされてしまう
puts "#{input_date.strftime('年%-m月%-d日')}"

# こうすることで0埋めが発生しない

findメソッド

  • 要素に対してブロックを評価した値が真になった最初の要素を返す
require 'date'
print '>> '
input_date = Date.parse(gets.chomp.split.join('-'))
# 入力 2019 4 30をまずsplitで配列として格納["2019", "4", "30"]
# そのあと、'-'を使って文字列に変換 "2019-4-30"
# Date.parseで日付オブジェクトを生成

wareki_hash = [
  { name: '令和', start_date: Date.new(2019,  5,  1) },
  { name: '平成', start_date: Date.new(1989,  1,  8) },
  { name: '昭和', start_date: Date.new(1926, 12, 25) },
  { name: '大正', start_date: Date.new(1912,  7, 30) },
  { name: '明治', start_date: Date.new }
].find do |data|
  input_date >= data[:start_date] 
  # findメソッドにより、入力された日付とhash形式で格納されている年号の開始日を比較し
  # 最初に真になった値を返す
end

次やること

  • 土日に1週間のYWTをまとめ自分が見返しやすい形に整理する
  • Github Pagesを使う
  • (何もなければ)JavaScriptのドットインストール、オブジェクト編終わらせる
Ruby
マネジメント
基本情報技術者
paiza

2020年07月31日(金)

2.0時間