10/15レビュー

1800 ワード

一日中シナリオの作成をしました.
きっと組長も以前やったことがあって、同じことを繰り返しているような気がします.
脚本を書くのはおもしろいことだ.私のパソコンで一度実行して捨てられることを知っているので、私が学んだ面白い技術を使ってみます.
今日作成したスクリプトで注目すべきはcurlingを使用したことです.最初は悪作劇でカードリングを使っていたが、コードを経て役に立った.やっぱり人間は...

def clone(coll, field, sub_clone_list=[]):

    def _clone(target, substitute):
        docs = list(db[coll].find({field: target}))
        for doc in docs:
            doc_id = str(doc.pop("_id"))
            result = db[coll].insert_one({**doc, field: substitute})
            new_doc_id = str(result.inserted_id)

            # 하위 컬렉션까지 복제
            for sub_clone in sub_clone_list:
                sub_clone(doc_id, new_doc_id)

    return _clone
これは、特定のセットのフィールドがtargetのドキュメントをコピーし、subsiuteでtargetを置き換えてセットに挿入する簡単なコードです.
どうしてもカードリングで表現しなければならない理由は以下の通りです.
コレクションをコピーする場合は、ドキュメントのインデックスを他のコレクションで外部キーとして使用されているドキュメントと一緒にコピーする必要があります.
この場合、上記のコードを使用すると、このような方法で問題を解決することができます.
def clone_person():
    clone_grandchild = clone("grandchildren", "child_id")
    clone_child = clone("children", "person_id", [clone_grandchild])
    clone_sibling = clone("siblings", "person_id")
    return clone("homeworks", "course_id", [clone_child, clone_sibling])
  • clone personを呼び出すと、personセットをコピーする関数が返されます.
  • コピー先の子と兄弟姉妹のコピー先のインデックスを外部キーに変更してコピーします.
  • 孫にも同様の行為があった.(child idは外部キー)
  • このようにして,条件文に重複するコードが充満していることから抜け出した.
    ビジネスロジックを使用してデータを推定し、適切にデータを使用してビジネスロジックを推定することで、スクリプトを作成して通常のコンテキストを迅速に理解し、これらのコンテキストに基づいて正常な新しいデータを生成できます.ユーザーインタフェースも一緒に作成されるので、コードをいつでも書き直す必要はなく、スクリプトを回してデータを入力するだけです.これからは同じことで一日を無駄にしない.
    コードを書き換えると、いろいろな例外処理が行われていないことに気づきました.これからは補強しなければならない.
    スクリプトは、チームメンバーが見える場所に共有する必要があります.