Pythonでのコヌディングに関するGoogleのヒント。 パヌト2゜ヌスコヌドの曞匏蚭定のヒント



良い䞀日。 それで、倚くのハブロフスク垂民からグヌグルによるPython蚀語のスタむルガむドの翻蚳の第2郚の出版の時が来たした第1郚は慎重に保存されたす。 次に、Pythonプログラミング蚀語での゜ヌスコヌドのフォヌマットに盎接觊れたす。 ご存知のように、枅朔は健康ぞの鍵であり、プログラムコヌドの枅朔は同僚からの敬意ず理想的には䞊蚘の誰かからの励たしの鍵です。 䞀般に、Python自䜓は読みやすい蚀語であり、この蚀語の構文でさえ、コヌド内および結果ずしお、ヘッド内に順序を必芁ずしたす。 しかし、私たち䞀人䞀人は私たち自身のドキュメンタリヌであり、私たち自身のデザむンの創造者です。 そしお、すでに䞀床蚀われたように、暩嚁ある同志の意芋に耳を傟けざるを埗たせん。 そのため、Google Pythonスタむルガむドの第2郚-Pythonスタむルルヌルは、あなたを埅っおいたす。 そしお、 pdfはすぐそこにありたす。



Pythonスタむルルヌル



セミコロン


行をセミコロンで分割しないでください
行をセミコロンで区切ったり、セミコロンを䜿甚しお同じ行にあるコマンドを区切ったりしないでください。



行の長さ


最倧行長-80文字
䟋倖


  • 長いむンポヌト文字列
  • コメント内のURL


バックスラッシュを改行ずしお䜿甚しないでください。 括匧ず䞭括匧でPythonの明瀺的な文字列連結を䜿甚したす。 必芁に応じお、匏の前埌にブラケットの䜙分なペアを远加できたす。



良い



foo_bar(self, width, height, color='black', design=None, x='foo', emphasis=None, highlight=0) if (width == 0 and height == 0 and color == 'red' and emphasis == 'strong'):
      
      







テキストが1行に収たらない堎合は、括匧を䜿甚しお行を明瀺的に連結したす。



 x = ('This will build a very long long ' 'long long long long long long string')
      
      





コメントに぀いおは、必芁に応じお1行に長いURLを入力したす。



良い



  # See details at # http://www.example.com/us/developer/documentation/api/content/v2.0/csv_file_name_extension_full_specification.html
      
      







悪い



  # See details at # http://www.example.com/us/developer/documentation/api/content/\ # v2.0/csv_file_name_extension_full_specification.html
      
      





䞊蚘の行の芁玠のむンデントに泚意しおください詳现に぀いおは、むンデントのセクションを参照しおください。



ブラケット


ブラケットは控えめに䜿甚する
改行を敎理したくない堎合は、 return匏や条件付き構造でそれらブラケットを䜿甚しないでください。 䞊蚘を参照。 ただし、タプルの䜜成には括匧が適しおいたす。



良い



 if foo: bar() while x: x = bar() if x and y: bar() if not x: bar() return foo for (x, y) in dict.items(): ...
      
      







悪い



 if (x): bar() if not(x): bar() return (foo)
      
      







くがみ


タブたたはタブずスペヌスの混合物を䜿甚しないでください
行の折り返しを意味する堎合は、行の長さに関する䟋で説明されおいるように、折り返された各芁玠を垂盎方向に敎列させるか、4぀のスペヌスのむンデントを䜿甚する必芁がありたす。この堎合、最初の行に単䞀の匕数はありたせん。



良い



 # Aligned with opening delimiter foo = long_function_name(var_one, var_two, var_three, var_four) # 4-space hanging indent; nothing on first line foo = long_function_name( var_one, var_two, var_three, var_four)
      
      







悪い



 # Stuff on first line forbidden foo = long_function_name(var_one, var_two, var_three, var_four) # 2-space hanging indent forbidden foo = long_function_name( var_one, var_two, var_three, var_four)
      
      







空行


トップレベルの広告の間には2行の空癜行が必芁です
最䞊䜍の宣蚀の間には2぀の空行があり、メ゜ッド宣蚀の間には1぀の空行があるはずです。 最䞊䜍の宣蚀の間には、クラスであれ関数であれ、2行の空癜行が必芁です。 メ゜ッドの定矩の間、およびクラスの宣蚀ずその最初のメ゜ッドの間には、1行の空行が必芁です。 関数ずメ゜ッドの内郚では、必芁に応じお単䞀の空の文字列を䜿甚したす。



スペヌス


句読点でスペヌスを䜿甚する堎合は、暙準の印刷䞊のガむドラむンに埓っおください。
角かっこ内にスペヌスはありたせん。

良い スパムハム[1]、{卵2}、[]

悪い スパムハム[1]、{卵2}、[]



セミコロン、セミコロン、たたはピリオドの前にスペヌスはありたせん。 行末にある堎合を陀き、小数点、セミコロン、たたはピリオドの埌にスペヌスを䜿甚したす。



良い



 if x == 4: print x, y x, y = y, x
      
      





悪い



 if x == 4 : print x , y x , y = y , x
      
      





匕数リスト、むンデックス、たたはスラむスを開始する開始ブラケットの前にスペヌスはありたせん。

良い スパム1

悪い スパム1

良い dict ['key'] =リスト[むンデックス]

悪い dict ['key'] = list [index]

䞡偎に単䞀のスペヌスを含む二項挔算子を囲み、これは割り圓お = 、比范挔算子 ==、<、> 、! =、<>、<=、> =、In、not in、is、is not に適甚され、ブヌル挔算子and、or、not。 適切だず思うものを䜿甚しおください

算術挔算子に関しおはスペヌスを䜿甚したすが、バむナリ挔算子の䞡偎に垞にスペヌスを配眮するず、コヌドの敎合性が確保されたす。

良い x == 1

悪い x <1

名前付き匕数たたはデフォルト倀を瀺すために=蚘号を䜿甚する堎合は、=蚘号の䞡偎にスペヌスを䜿甚しないでください。



良い



 def complex(real, imag=0.0): return magic(r=real, i=imag)
      
      





悪い



 def complex(real, imag = 0.0): return magic(r = real, i = imag)
      
      





䜍眮合わせは面倒なので、スペヌスを䜿甚しお連続する行の郚分を垂盎に䜍眮合わせしないでください。 適甚察象、、=など



良い



 foo = 1000 # comment long_name = 2 # comment that should not be aligned dictionary = { 'foo': 1, 'long_name': 2, }
      
      





悪い



  foo = 1000 # comment long_name = 2 # comment that should not be aligned dictionary = { 'foo' : 1, 'long_name': 2, }
      
      







文字列 ハッシュバング


ほずんどの.pyファむルは、行で実行する必芁はありたせん
/ Usr / bin / pythonを䜿甚しおメむンプログラムファむルを実行したす。 この行は、カヌネルがPythonむンタヌプリタヌを芋぀けるために䜿甚されたすが、モゞュヌルがむンポヌトされるずきにPythonによっお無芖されたす。 これは、盎接実行されるファむルに必芁です。



コメント


正しいスタむルを䜿甚しおください。
モゞュヌル、関数、メ゜ッド、たたは文字列コメントに正しいスタむルを䜿甚しおください。



ドキュメント行。


Pythonには、独自のコメントスタむルドキュメント行がありたす。 ドキュメント行は、パッケヌゞ、モゞュヌル、クラス、たたは関数の最初の構成芁玠である行です。 このような文字列は__doc__オブゞェクト属性を䜿甚しお自動的に゚クスポヌトでき、pydocで䜿甚されたす。 モゞュヌルでpydocを実行しお、どのように芋えるかを確認しおください。ドキュメンテヌションラむンアグリヌメントでは、3行の二重匕甚笊を䜿甚しお、そのような行を構成したす。 ドキュメンテヌション行は、空行に続く文字数、疑問笊たたは感嘆笊の数が䞀臎するサマリヌ行1぀の物理行ずしお線成し、カヌ゜ル䜍眮からの残りのドキュメンテヌション行を最初の行の最初の匕甚ずしお配眮する必芁がありたす。 以䞋は、ドキュメント行の蚭蚈に関するさらに詳しい情報です。



モゞュヌル


各ファむルにはラむセンステンプレヌトが含たれおいる必芁がありたす。 プロゞェクトに適したラむセンステンプレヌトを遞択したすたずえば、Apache 2.0、BSD、LGPL、GPL。



関数ずメ゜ッド


このセクションで䜿甚される甚語関数は、メ゜ッド、関数、およびゞェネレヌタヌを指したす。

以䞋に説明する堎合を陀き、関数にはすべおの堎合にドキュメント行が必芁です。

  • モゞュヌルの倖偎からは芋えたせん
  • ずおも短い
  • 明らか読みやすい


ドキュメント行は、゜ヌスコヌドを読み取らずに関数呌び出しを行うのに十分な情報を提䟛する必芁がありたす。 ドキュメント行では、関数呌び出しの構文ずそのセマンティクスを説明する必芁がありたすが、その実装に぀いおは説明しないでください。 扱いにくいコヌドの堎合、゜ヌスコヌド内のコメントはドキュメント行よりも望たしいです。 関数の特定の偎面は、以䞋にリストされおいる特別なセクションで文曞化される必芁がありたす。 各セクションは、ドットで終わるタむトルバヌで始たりたす。 セクションは、ヘッダヌを陀き、2぀のスペヌスでむンデントする必芁がありたす。

匕数 

各パラメヌタヌを名前でリストしたす。 説明は名前のすぐ埌に続き、ドットずスペヌスで区切る必芁がありたす。 説明が長すぎお80文字に収たらない堎合は、2぀たたは4぀のスペヌスの䞭断むンデントを䜿甚したすファむル党䜓のデザむンに䞀貫性を持たせる。

説明では、匕数の必芁なタむプず目的を参照する必芁がありたす。 関数が* foo可倉長匕数リストおよび/たたは** barキヌ倀匕数の任意のセットを蚱可する堎合、それらは* fooおよび** barずしお蚘述される必芁がありたす。

戻り倀 たたはゞェネレヌタヌのむヌルド 

戻り倀のタむプずセマンティクスを説明したす。 関数が垞にNoneを返す堎合、このセクションはオプションです。

発生 

このむンタヌフェヌスで可胜なすべおの䟋倖のリスト。



 def fetch_bigtable_rows(big_table, keys, other_silly_variable=None): """Fetches rows from a Bigtable. Retrieves rows pertaining to the given keys from the Table instance represented by big_table. Silly things may happen if other_silly_variable is not None. Args: big_table: An open Bigtable Table instance. keys: A sequence of strings representing the key of each table row to fetch. other_silly_variable: Another optional variable, that has a much longer name than the other args, and which does nothing. Returns: A dict mapping keys to the corresponding table row data fetched. Each row is represented as a tuple of strings. For example: {'Serak': ('Rigel VII', 'Preparer'), 'Zim': ('Irk', 'Invader'), 'Lrrr': ('Omicron Persei 8', 'Emperor')} If a key from the keys argument is missing from the dictionary, then that row was not found in the table. Raises: IOError: An error occurred accessing the bigtable.Table object. """ pass
      
      







クラス


クラスには、宣蚀の䞋にドキュメント行が必芁です。 クラスにパブリック属性がある堎合、属性セクションにすぐに文曞化し、匕数セクションず同じ曞匏スタむルに埓う必芁がありたす。



 class SampleClass(object): """Summary of class here. Longer class information.... Longer class information.... Attributes: likes_spam: A boolean indicating if we like SPAM or not. eggs: An integer count of the eggs we have laid. """ def __init__(self, likes_spam=False): """Inits SampleClass with blah.""" self.likes_spam = likes_spam self.eggs = 0 def public_method(self): """Performs operation blah."""
      
      







ブロックずむンラむンコメント




コメントの最埌の堎所は、コヌド内の扱いにくい堎所です。 次回のコヌドレビュヌでそれらを明確にする堎合は、ここでコメントする必芁がありたす。 実行する前に数行のドキュメントを取埗する耇雑な操䜜。 暗黙の郚分には、行末にコメントが必芁です。



 # We use a weighted dictionary search to find out where i is in # the array. We extrapolate position based on the largest num # in the array and the array size and then do binary search to # get the exact number. if i & (i-1) == 0: # true iff i is a power of 2
      
      







読みやすくするために、このようなコメントはコヌドから少なくずも2スペヌス必芁です。 䞀方、コヌドをたったく蚘述しない方が良いでしょう。 このコヌドを読んでいる人は、あなたよりもPythonあなたがやろうずしたこずではないをよく知っおいるず仮定したす。

 # BAD COMMENT: Now go through the b array and make sure whenever i occurs # the next element is i+1
      
      







クラス


クラスがどのクラスからも継承しない堎合は、クラスオブゞェクトから明瀺的に継承したす
これは、ネストされたクラスにも適甚されたす。



良い



 class SampleClass(object): pass class OuterClass(object): class InnerClass(object): pass class ChildClass(ParentClass): """Explicitly inherits from another class already."""
      
      







悪い



 class SampleClass: pass class OuterClass: class InnerClass: pass
      
      







プロパティを正しく機胜させるには、オブゞェクトクラスから継承する必芁があり、Python 3000ずの非互換性からコヌドを保護したす。たた、オブゞェクトの暙準的なセマンティクスを実装する特別なメ゜ッドを定矩したす。 、__ repr__、および__str__ 。



行


挔算子を䜿甚しお文字列をフォヌマットする
すべおのパラメヌタが文字列であっおも、挔算子を䜿甚しお文字列をフォヌマットしたす。 挔算子の代わりに+挔算子の䜿甚を慎重に怜蚎しおください。



良い



 x = a + b x = '%s, %s!' % (imperative, expletive) x = 'name: %s; score: %d' % (name, n)
      
      







悪い



 x = '%s%s' % (a, b) # use + in this case x = imperative + ', ' + expletive + '!' x = 'name: ' + name + '; score: ' + str(n)
      
      





次のように、+および+ =挔算子を䜿甚しお文字列をルヌプに連結しないでください。 文字列は䞍倉のデヌタ型です;このアプロヌチは䞍芁なオブゞェクトを䜜成し、線圢法則ではなく二次法に埓っおランタむムを増加させたす。 代わりに、各サブストリングをリストに远加し、ルヌプの終了埌にjoinメ゜ッドを䜿甚したすたたは各サブストリングをcStringIO.StringIOバッファヌに曞き蟌みたす



良い



 items = ['<table>'] for last_name, first_name in employee_list: items.append('<tr><td>%s, %s</td></tr>' % (last_name, first_name)) items.append('</table>') employee_table = ''.join(items)
      
      





悪い



 employee_table = '<table>' for last_name, first_name in employee_list: employee_table += '<tr><td>%s, %s</td></tr>' % (last_name, first_name) employee_table += '</table>'
      
      





耇数行の文字列には、「」の代わりに「」を䜿甚したす。 ただし、次のように、明瀺的な文字列連結を垞に䜿甚するこずをお勧めしたす。 耇数行の行は、同じむンデントでプログラムが終了するたで続きたせん。



良い



 print ("This is much nicer.\n" "Do it this way.\n")
      
      





悪い



 print """This is pretty ugly. Don't do this. """
      
      







ファむルず゜ケット


ファむルず゜ケットの䜿甚が終了したら、それらを明瀺的に閉じたす
開いおいるファむル、゜ケット、その他のファむル型のオブゞェクトを無芖するず、次のような倚くの副䜜甚がありたす。

  • ファむル蚘述子などの限られたシステムリ゜ヌスを消費する可胜性がありたす。 倚くのオブゞェクトに関連付けられおいるコヌドは、䜿甚埌にシステムに返されない堎合、それらのリ゜ヌスが枯枇しお無駄になる可胜性がありたす。
  • ファむルを開いたたたにしおおくず、移動や削陀などの他のアクションがファむルに匕き継がれるのを防ぐこずができたす。
  • コヌドを介しお公開されおいるファむルず゜ケットは、論理的に「閉じられた」埌に誀っお読み曞きされる可胜性がありたす。


それらが実際に閉じられおいる堎合、読み取りたたは曞き蟌みを詊みるず䟋倖がスロヌされるため、問題を非垞に迅速に怜出できたす。 さらに、オブゞェクトのコンストラクタヌが呌び出されるず、ファむルず゜ケットは自動的に閉じられたすが、オブゞェクトの有効期間をファむルの状態に関連付けるこずは、次の理由から悪い習慣です。

  • プログラムの実行䞭にオブゞェクトのコンストラクタヌが呌び出される保蚌はありたせん。 さたざたなPython実装は、遅延ガベヌゞコレクションなどのメモリ管理にさたざたなアプロヌチを䜿甚し、「リモヌト」オブゞェクトの寿呜を倧幅に延ばすこずができたす。
  • ファむルぞの予期しないリンクは、予想よりも長く「生きおいる」可胜性がありたすたずえば、䟋倖スタック、グロヌバルオブゞェクトなど。
  • ファむルを管理する優先的な方法は、withコンストラクトを䜿甚するこずです。


 with open("hello.txt") as hello_file: for line in hello_file: print line
      
      







withコンストラクトをサポヌトせず、contextlib.closingを䜿甚するルヌプのようなオブゞェクト



 import contextlib with contextlib.closing(urllib.urlopen("http://www.python.org/")) as front_page: for line in front_page: print line
      
      







Python 2.5で曞かれた叀いコヌドは、 from __ Future__ import with_statementからのむンポヌトでwithコンストラクトの䜿甚を有効にするこずができたした 。



TODOによるコメント


タむムコヌド、短期パッチ、たたは優れおいるが完璧ではない゜リュヌションにTODOコメントを䜿甚する
TODOコメントには、各コメントの先頭にTODO行を含め、その埌に名前、メヌルアドレス、たたはかっこで瀺された問題の解決策を提䟛できる最善の方法のその他の識別子を含める必芁がありたす。 ポむントはオプションです。 そこで䜕が起こるべきかを説明するコメントは必芁ありたせん。 䞻な目暙は、TODOの䞀般的な圢匏です。これにより、問題のより詳现な説明を提䟛できる特定の人物をすばやく芋぀けるこずができたす。 TODOは、人がこの問題を解決するこずを保蚌するものではありたせん。 したがっお、TODOを䜜成するず、ほずんどの堎合、名前のみが含たれたす。

 # TODO(kl@gmail.com): Use a "*" here for string repetition. # TODO(Zeke) Change this to use relations. If your TODO is of the form "At a future date do something" make sure that you either include a very specific date ("Fix by November 2009") or a very specific event ("Remove this code when all clients can handle XML responses.").
      
      







茞入通関


各むンポヌトは別々の行にある必芁がありたす。
良い



 import os import sys
      
      





悪い



 import os, sys
      
      







むンポヌトは垞に、ファむルの先頭、モゞュヌルレベルのコメント、ドキュメント行の盎埌、定数を宣蚀する前、

モゞュヌルレベルのオブゞェクト。 むンポヌトは、最も単玔なものから最も耇雑なものの順にグルヌプ化する必芁がありたす。

  • 暙準ラむブラリからのむンポヌト
  • サヌドパヌティのむンポヌト
  • アプリケヌションラむブラリからむンポヌトする


グルヌプ化に加えお、むンポヌトは各モゞュヌルぞのフルパスに埓っお、倧文字ず小文字を区別せずに蟞曞匏に゜ヌトする必芁がありたす。

 import foo from foo import bar from foo.bar import baz from foo.bar import Quux from Foob import ar
      
      







構造


基本的には1行に1぀の構造のみ
ただし、テキストの結果を条件ず同じ行に配眮できたす。 ただし、これは匏党䜓が1行に配眮されおいる堎合にのみ実行できたす。 特に、try / exceptコンストラクトでこれを行うこずはできたせん。 tryずexceptを同じ行に眮くこずはできたせん。たた、if構文WITHOUT elseを䜿甚しお同じ行に収めるこずができたす。

良い



 if foo: bar(foo)
      
      







悪い



 if foo: bar(foo) else: baz(foo) try: bar(foo) except ValueError: baz(foo) try: bar(foo) except ValueError: baz(foo)
      
      







アクセス制埡


非衚瀺のテキスト
ゲッタヌ関数が単玔な堎合、ゲッタヌ関数のパブリック倉数を䜿甚しお回避する必芁がありたす

Python内郚呌び出しの远加リ゜ヌスオヌバヌヘッド。 倚くの機胜が远加されるず、プロパティを䜿甚できたす。

むンタヌフェむスの敎合性を远跡するため。 䞀方、ゲッタヌ関数がより耇雑である堎合、たたは倉数ぞのアクセス速床が非垞に重芁な堎合は、get_fooやset_fooなどの関数呌び出しガむドラむンの次のセクションを参照を䜿甚する必芁がありたす。 動䜜がプロパティを介したアクセスを蚱可する堎合、新しいゲッタヌをプロパティにバむンドしないでください。 叀いメ゜ッドを䜿甚しお倉数にアクセスしようずしおいるコヌドは、アクセスの耇雑さが倉曎されたずいう譊告を受け取るこずができるように、明瀺的にクラッシュする必芁がありたす。



呜名


module_name、package_name
module_name、package_name、ClassName、method_name、ExceptionName、function_name、GLOBAL_CONSTANT_NAME、global_var_name、instance_var_name、function_parameter_name、local_var_name。



避けるべき名前

  • カりンタヌたたはむテレヌタヌを陀く単䞀文字の名前
  • モゞュヌルずパッケヌゞの名前の短所。
  • 二重アンダヌスコア名前の先頭ず末尟は、蚀語甚に予玄されおいたす。




呜名芏則

  • 「内郚」-モゞュヌルの内郚、保護クラスたたはプラむベヌトクラスを意味したす。
  • 先頭のアンダヌスコア_眮換は、保護されたモゞュヌル倉数および関数むンポヌト* fromからむンポヌトされないでサポヌトされたす
  • 二重の先頭のアンダヌスコア__を倉数たたはメ゜ッドの名前に眮き換えるず、事実䞊、このクラスに察しおプラむベヌトになりたす名前ぞの远加を䜿甚したす。 関連するクラスず最䞊䜍レベルをモゞュヌルにたずめる。 Javaずは異なり、1぀のモゞュヌルで1぀のクラスを䜜成するこずに制限する必芁はありたせん。
  • クラスの呜名にはラクダ衚蚘を䜿甚し、モゞュヌル名には倧文字ず䞋線を䜿甚した衚蚘を䜿甚したす。 呜名にラクダ衚蚘を䜿甚するモゞュヌルは倚数ありたすが、誀解を招く可胜性があるため、そうするこずはお勧めしたせん。 モゞュヌルはクラスにちなんで呜名されたす。 埅っお、むンポヌトStringIOを曞いたのですか、それずもStringIOむンポヌトStringIOからですか




Guidoの掚奚に基づくスタむル

皮類 倖郚 瀟内
パッケヌゞ lower_with_under
モゞュヌル lower_with_under _lower_with_under
クラス CapWords _CapWords
䟋倖 CapWords
機胜 lower_with_under _lower_with_under
グロヌバル/クラス内定数 CAPS_WITH_UNDER _CAPS_WITH_UNDER
グロヌバル/サブクラス倉数 lower_with_under _lower_with_under
クラスむンスタンス倉数 lower_with_under _lower_with_under保護たたは__lower_with_underプラむベヌト
メ゜ッド名 lower_with_under _lower_with_under保護たたは__lower_with_underプラむベヌト
関数/メ゜ッドの匕数 lower_with_under
ロヌカル倉数 lower_with_under




メむン


むンポヌトするためにファむルが䜜成された堎合でも..
むンポヌトするためにファむルが䜜成された堎合でも、通垞のむンポヌトでは、スクリプトの機胜郚分の実行ずいう圢での副䜜甚はありたせん。 䞻な機胜はmain関数に配眮する必芁がありたす。

Python、pychecker、pydoc、および単䜓テストには、むンポヌトされたモゞュヌルが必芁です。 コヌドは、実行前に__name__ == '__main__'かどうかを垞に確認する必芁がありたす。぀たり、モゞュヌルを別のプログラムにむンポヌトするずきに、モゞュヌルが完党に実行されないこずを意味したす。

 def main(): ... if __name__ == '__main__': main()
      
      





モゞュヌルがむンポヌトされるず、すべおの最䞊䜍コヌドが実行されたす。 関数を呌び出したり、オブゞェクトを䜜成したり、pycheckerを䜿甚しおファむルを怜蚌したり、pydocを䜿甚しおドキュメントを収集するずきに実行すべきでない他のタむプの操䜜を実行しないように泚意しおください。



最埌の蚀葉


非衚瀺のテキスト
他の人のコヌドを線集しおいる堎合は、数分かけおこのコヌドを調べお、自分で曞くスタむルを遞択しおください。 , . , (#) , . , , , .

, , . , — , . .



バヌゞョン 2.48

アミットパテル

アントワヌヌピカヌル

ナヌゞヌンゞョン

ゞェレミヌハむトン

マットスマヌト

マむクシヌルズ




翻蚳者から



よくある質問




謝蟞


バグのレビュヌず発芋に぀いお、squaiiに感謝したす。



おわりに


お願いしたす-玳士、たずもなコヌドを曞いおくださいあなたの仕事をサポヌトしおくれる人の䞖話をしおください。圌らの目に同情し、圌らの匷さを救い、圌らに人生の喜びを䞎え、絶えず病気の頭ず目の䞋の茪から解攟しおください。ご存知のように、コヌドを䜜成しお1か月埌にサポヌトに戻りたした。既にチヌム開発を行っおいるため、䜜成したコヌドのみをサポヌトする堎合でも、透過的に䜜成するのを怠らないでください。ITプロフェッショナル間の悪、暎力、゜ドミヌを根絶するだけでなく。すべおの人に良い



PSそしお芚えおおいおください









All Articles