リファクタリングコード
9823 ワード
おい、皆さん!あなたがそれを維持しているならば、あなたは私のクラスOSD 600のために私のNoob
Rssg
タスク
今週は、変数の名前を変更したり、ロジックを分離するなどのコードを屈折させる3つの方法を見つけることになっています.RSSGのために、耐火物によって決定しました
エラーがあるならば、主なプログラムのためにプロセス終了0を返すそれが をするかについてより顕著であるためにReadRoundテキスト機能を改名していることは、それがより読みやすい であるように、プロセス機能のロジックを切り離した
ステップ
いつもコミットを表示したい場合は です
here
- 1
私の非常に最初のステップは、この不良少年を屈折させた
菅2
これは非常に簡単でしたが、それは多くの感覚を作りました
引数が有効なファイルであれば、それぞれの引数を通ってプロセス関数を呼び出します.
菅3
以前に、入力ファイルをHTMLファイルに変える私のプロセス関数はsuuuuuuperでした.私はこのロジックを2つの別々の関数に分離し、代わりにif checkの中に呼び出します.これは、コードを読みやすく、次のように簡単になります.
再舗装
これはかなりクールなプロセスだった.チェックアウト分岐では、
Rssg
Adding New Features to Rssg and Git Merging Branches
Antonio-Bennett ・ Oct 1 '21 ・ 2 min read
#rust
#opensource
#github
#osd600
タスク
今週は、変数の名前を変更したり、ロジックを分離するなどのコードを屈折させる3つの方法を見つけることになっています.RSSGのために、耐火物によって決定しました
エラーがあるならば、主なプログラムのためにプロセス終了0を返す
ステップ
いつもコミットを表示したい場合は です
here
- 1
私の非常に最初のステップは、この不良少年を屈折させた
pub fn run() {
//Takes appropriate action based on arguments passed ex. rssg --input
read_arguments().unwrap();
}
read_arguments()
はCLI引数と一致するコードを持っていて、必要に応じてErr
を返します、しかし、私はそのような中でprogram::exit(0)
を呼んでいましたif env::args().count() == 2 {
println!("Please enter input. Type rssg --help or -h for more information.");
process::exit(0);
}
私がちょうど必要に応じてerrを返すことができたときreturn Err("Please enter input. Type rssg --help or -h for more information.".into());
そして、このようにpub fn run() {
//Takes appropriate action based on arguments passed ex. rssg --input
if read_arguments().is_err() {
process::exit(0);
}
}
菅2
これは非常に簡単でしたが、それは多くの感覚を作りました
引数が有効なファイルであれば、それぞれの引数を通ってプロセス関数を呼び出します.
pub fn read_text(args: &[String]) -> Result<(), Box<dyn Error>> {
//Iterate through each input and process
args.iter().for_each(|arg| {
if let Ok(mut file) = fs::read_to_string(arg.to_owned()) {
//Reaches this if the argument was just a filename
process(&mut file, arg);
} else if Path::new(arg).is_dir() {
//Argument is a directory so we have to recursively search the dir
let path = Path::new(arg);
visit_dirs(path, &process).expect("Couldn't convert dir");
}
});
Ok(())
}
それははるかに適切にread_arguments
として命名されます菅3
以前に、入力ファイルをHTMLファイルに変える私のプロセス関数はsuuuuuuperでした.私はこのロジックを2つの別々の関数に分離し、代わりにif checkの中に呼び出します.これは、コードを読みやすく、次のように簡単になります.
if vec_lines[1].is_empty() && vec_lines[2].is_empty() && !vec_lines[0].is_empty() {
process_file_with_title(
vec_lines,
&mut html,
&mut firstline,
&mut is_header,
&mut line,
prev_tag,
ext,
);
} else {
process_file_with_no_title(
&name,
default_content,
vec_lines,
&mut html,
&mut firstline,
&mut is_header,
&mut line,
prev_tag,
ext,
)
}
再舗装
これはかなりクールなプロセスだった.チェックアウト分岐では、
read_text
を実行することで、複数のコミットを1つにまとめることができます.それは知っている非常に涼しいgitコマンドです、しかし、私はどれくらいしばしば私が正直にそれを使うかについて、わかりません.将来使用できるツールとして使えるのは素晴らしいです.Reference
この問題について(リファクタリングコード), 我々は、より多くの情報をここで見つけました https://dev.to/antoniobennett/refactoring-code-2gf4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol