-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
「コンパイル」「実行」というステップを分離する #72
Comments
ただ、コード実行機能はIDEではないので、今の右三角形のボタンを2つに分離すると面倒くさいことになるのでそれは避けたい(個人の感想です) |
#19 でまったく同じIssueを自分で立ててた。完全に記憶飛んでた |
一応、bash を使えばこういう風に見せることはできます。 |
これは素晴らしいですね。 一つ懸念としては、 #13 を実装したときに、コードが単一のスニペットとして表示されてほしいです。Wandboxの複数ファイル機能を使って bash で別のファイルを叩けるなら、たぶんその方が良いです。ただ、bashスクリプトが毎回余分なファイルとして添付されることになると思うので、なかなかうまい解決法が思いつきません。 もう一つの懸念としては、いまは以下のコードでWandboxのANSIエスケープシーケンスをパースして色を付けてるので、bash経由にするとここが消えそうというのがあります。 Lines 314 to 316 in 4ea3bbe
|
僕の提案にあるようにウソのコマンド行を追記するよりは @melpon の提案のように再現性のある形で出す方が二万倍くらい美しいので、なにか良い方法ないですかね…… |
本issueはcpprefjpコード実行機能のUXとして「コンパイル/実行フェーズ分離を行う」というニュアンスでしょうか?この解釈を前提に、一つの意見として、懐疑的なスタンスを表明しておきます。
この内容それ自体には同意します。その上で、cpprefjpの目的は「言語機能やライブラリのリファレンス」であり、プログラミング学習者をターゲットとした教育的側面は二の次と考えています。 前者の目的を持ったユーザにとっては、コンパイルと実行のフェーズ分離は裏方の実現手段にすぎず、今調べているライブラリ関数の実行結果はどうなるかが興味対象と考えます。このユーザに対するUXとしては、ワンアクションで実行結果が得られる現状仕様が好ましいと思います。 |
@yohhoy 同じように思います。なので、僕もボタンごと分離するとかはあまりやりたくないです。しかし、出力を結合してしまっている今の仕様には流石に無理があると思うので、見た目は分離したいと思います。 @melpon の提案のように再現性があるスクリプトを同梱すると別の意味で付加価値が出るので、これはこれでやりたいです。教育的側面が二の次という点はその通りですが、一方で、C++の初心者がcpprefjpの記事に特有の親切な解説で助かっているという声は非常に多く聞くので、ここを助けるのはcpprefjpでやってもスコープを逸脱するほどではないと思います。 CONTRIBUTING の一番最初の項目にサンプルコードでユーザサポートをするということが書かれているくらいなので、受け取り方次第ですが自分はサンプルコード周りはもう少しくらいなら強化しても良いかなと思っています。 |
上記の問題定義・解釈が、人によって(私だけかも)少し違うのかもと思いなおしました。wandboxが返す結果データが分離されていれば、あとはサイト上での画面表示の問題ということでしょうか。 |
そうです。最速で解決するなら WandboxのAPIが返すデータ自体は標準出力、標準エラー、プログラム出力では分離されていたはずです(たぶん、記憶が正しければ)。 |
見た目の区切り方としては、CircleCIのrunのような表示までリッチにするのが案2。これは、ステップ自体をデザインから根本的に分離することで、「人間の行為」と「機械的出力」を分けるという思想です。感覚としてはCIよりJupyter Notebookの方が近いかも。 案1は横棒一本追加するやつです。 案3は、ターミナルを実際に叩くときのコマンド以外の装飾は一切入れないやつてす。これは最も現実世界原理主義ですが、悪くはないと思います |
わたしは案3がいいな。 cpprefjp ユーザーが必要とするわかりやすさを私なりに考えるとこれが最良と思います。 |
@melpon Wandboxでコンパイルに使われた完全なコマンド全体を取得する方法ってありますか? |
@saki7 ディスプレイ用のコマンド( ※ |
@melpon あっ(察し) kunaiのwand.js で連想配列に突っ込んでいるものを半角スペースでjoinするので良い気がしてきました |
あ、ディスプレイ用のコマンドが欲しかったやつでした。下の長いコマンドの方に気を取られて完全にスルーしてた |
個人的にはコード実行機能自体、どちらかと言えば初学者・入門者をターゲットにした機能だと認識しているので、賛成です。そうでない人もコード実行しない限りにおいては何ら影響を受けないですし、それでも嫌な人はそもそも自前で使い慣れたコンパイル環境を使うでしょう。 |
とりま案3で調整します |
C++でプログラムを書くときは、
こういうステップになる。
今のcpprefjpの実行機能では、 (2) と (3) の出力が同じ場所にそのまま連結して出力される。間に区切りなどが無い。
これはUXとしては問題がある。プログラマの思考として (2) と (3) は明確に分離されているものなので、出力は何かしらの形で2つに分けるか、バイナリを仮想的に叩くようなターミナルコマンド行を勝手に追記した方が良いと思う。
これを直さないと、プログラミングの初心者の混乱を招く。自分も初心者の時は「コンパイル」と「実行」という概念がまず理解できなかったので、ここはしっかり直したい。
The text was updated successfully, but these errors were encountered: