IT |
InfoQ |
Avoid Being an "Ivory Tower" Architect: The Relationship between Architects and Their Organisation |
https://www.infoq.com/news/2023/01/ivory-tower-architects/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global
|
Avoid Being an quot Ivory Tower quot Architect The Relationship between Architects and Their OrganisationIn a recently published episode of Armchair Architects the speakers discussed the relationship between software architects and the rest of the organisation They detail how a successful architect can impact others by switching between going into the trenches and zooming into a tree and then being able to zoom out and estimate if that tree still fits into the forest By Eran Stiller |
2023-01-25 13:30:00 |
AWS |
AWS Machine Learning Blog |
Cohere brings language AI to Amazon SageMaker |
https://aws.amazon.com/blogs/machine-learning/cohere-brings-language-ai-to-amazon-sagemaker/
|
Cohere brings language AI to Amazon SageMakerIt s an exciting day for the development community Cohere s state of the art language AI is now available through Amazon SageMaker This makes it easier for developers to deploy Cohere s pre trained generation language model to Amazon SageMaker an end to end machine learning ML service Developers data scientists and business analysts use Amazon SageMaker to build train and deploy ML models quickly and easily using its fully managed infrastructure tools and workflows |
2023-01-25 13:32:44 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Python で先週日曜日の日付を取得する |
https://qiita.com/ajim/items/a75ce6ae1467b4299ad6
|
isoweekdaydatetime |
2023-01-25 22:50:19 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
openpyxlのオートフィルタ設定のメモ |
https://qiita.com/y-tetsu/items/bfb9960edf207559c7bc
|
openpy |
2023-01-25 22:47:49 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
JavaScript ~コレクション編~ |
https://qiita.com/Mizut452/items/51d5323887f14767bbf2
|
array |
2023-01-25 22:56:39 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
実務未経験でHTML5プロフェッショナル認定試験 レベル2に一発合格した |
https://qiita.com/ToyamaHideki/items/f4ebd9bc773c5af8bd27
|
認定試験 |
2023-01-25 22:38:36 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
オブジェクトの分割代入(Destructuring assignment) |
https://qiita.com/jungyeounjae/items/51f38d8ad44eb3c65d60
|
destructuringassignment |
2023-01-25 22:34:46 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWSでWEB3層構造の構築④(DBサーバの構築とAPサーバとの連携) |
https://qiita.com/lucifer22/items/abaeb9c16446cdd97edc
|
連携 |
2023-01-25 22:57:06 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWSでWEB3層構造の構築③(WEBサーバ、APサーバの構築と連携) |
https://qiita.com/lucifer22/items/10b4cbd22b921dacd001
|
連携 |
2023-01-25 22:39:18 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWSでWEB3層構造の構築②(VPC、サブネット、NW設定、インスタンス起動、SSH接続) |
https://qiita.com/lucifer22/items/2e5850e1b851de5629d6
|
通り |
2023-01-25 22:24:17 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWSでWEB3層構造の構築①(WEB3層構造の基礎) |
https://qiita.com/lucifer22/items/44906506f48d99d14a3e
|
転職 |
2023-01-25 22:11:03 |
技術ブログ |
Developers.IO |
停滞するキャリア=「キャリアプラトー」。その原因と対策は? |
https://dev.classmethod.jp/articles/career-plateau/
|
統括 |
2023-01-25 13:23:50 |
技術ブログ |
Developers.IO |
メタデータのありがたみを完全に理解したので説明しよう #SnowflakeDB |
https://dev.classmethod.jp/articles/metadata-iine/
|
snowflake |
2023-01-25 13:13:00 |
海外TECH |
MakeUseOf |
What Is Crypto Shilling, and How Does It Affect the Crypto Market? |
https://www.makeuseof.com/what-is-crypto-shilling/
|
bitcoin |
2023-01-25 13:15:15 |
海外TECH |
DEV Community |
What is the difference between a programming language and a framework? 🤔 |
https://dev.to/ipaneandev/what-is-the-difference-between-a-programming-language-and-a-framework-2kbo
|
What is the difference between a programming language and a framework Programming Language A programming language is a set of commands that instructs a software or computer s functionality While a framework provides the foundation for implementing the language s commands Framework Frameworks are dynamic allowing them to be reused when needed More or less they can be thought of as templates Templates in web design for example make it much easier to create a website Some examples PHP Laravel Python Django Java Spring Ruby Rails and many more of those amazing technologies |
2023-01-25 13:25:50 |
海外TECH |
DEV Community |
New hot trend? Locality of behavior |
https://dev.to/ralphcone/new-hot-trend-locality-of-behavior-1g9k
|
New hot trend Locality of behaviorThere is a new trend gaining traction lately which is called “Locality of Behaviour principle It is a great new name for an old concept cohesion It s growing lately around HTMX and TailwindCSS communities but it s an useful concept in general ️Let me begin with a warning first I don t believe in “principles when it comes to software engineering I think of everything as techniques that when used correctly and in the right context make the software better in some aspect eg easier to understand But when used without understanding or overused they make it worse There are no silver bullets and Locality of Behaviour isn t one either Here s what it is about The behaviour of a unit of code should be as obvious as possible by looking only at that unit of code This points back to a quote from a book by Richard P Gabriel which states that The primary feature for easy maintenance is locality Locality is that characteristic of source code that enables a programmer to understand that source by looking at only a small portion of it Ease of understandingLoB Locality of Behaviour is mostly concerned with ease of understanding It s much easier to understand code which lives together and can be easily and quickly tracked than code where you need to jump around the whole codebase to piece the logic together It s easy to imagine let s say that you are working on a backend app not an API one but a Multi Page Application server side rendered Now to implement a new functionality you need to modify model a bitchange how controller worksupdate a form classchange the templatemodify styles a bitWhich one will be easier to update Part of the software where are components you need to modify are in one small folder Part of the software where are components are scattered across different parts of the source code I think the answer here is pretty obvious but I ll leave it to you Co locationThe idea here is code co location basically It has been written about before If you have a system where code related to the same behaviour is scattered try to bring it closer together it will make it easier to understand and modify This in order will increase your productivity reduce frustrations and improve your joy of work The goal is that if you need to understand or modify some behaviour in the system you will find most if not all of the functionality easily in single place and will be able to understand them quickly Example Vue jsVue is one of the most popular frontend libraries for creating Single Page Applications It has something called single file components which bring together styles javascript and templates Let s take a look at one lt script gt export default data return show true list lt script gt lt template gt lt button click show show gt Toggle List lt button gt lt button click list push list length gt Push Number lt button gt lt button click list pop gt Pop Number lt button gt lt button click list reverse gt Reverse List lt button gt lt ul v if show amp amp list length gt lt li v for item of list gt item lt li gt lt ul gt lt p v else if list length gt List is not empty but hidden lt p gt lt p v else gt List is empty lt p gt lt template gt lt style gt ul list style type none padding lt style gt Now you have everything to understand this particular component in a single place It doesn t mean that placing styles templates and code is the only way to do LoB in SPAs With React people usually place these in separate files but in a single folder named after a component Example HTMXIf I m not mistaken the term “Locality of Behaviour was coined by creator of HTMX Carson Gross In HTMX it refers to the fact that it allows you to embed behaviour in HTML in a clean and easy to understand once you understand HTMX way It s not a hammer that you can use to deal with everything but it makes a large amount of interactions easy to do without any fancy frameworks or writing specialized JS code Here s an example of a “click to edit functionality lt div hx target this hx swap outerHTML gt lt div gt lt label gt First Name lt label gt Joe lt div gt lt div gt lt label gt Last Name lt label gt Blow lt div gt lt div gt lt label gt Email lt label gt joe blow com lt div gt lt when button gets clicked we ll load edit form and swap it with the outer div gt lt button hx get contact edit class btn btn primary gt Click To Edit lt button gt lt div gt See how all of the behaviour is local and we don t have to look through files for document querySelector some magic class addEventListener See more examples with interactive demos here Not just frontendLoB co location comes from frontend world but it applies to backend as well We not always may keep logic in one file but we can always place related things together A structure for a hypothetical Python app could look like this ├ーthing module │ ├ーnew thing py│ │├ーNewThingForm││├ーNewThingView│ ├ーtemplates ││└ーnew thing html └ーscss └ーnew thing scss├ーanother module Keeping things all together makes things easy to find and modify Tensions and interactionsFor some reason in software development we tend to present techniques which some call “principles as absolute as if they stand on their own and have no interactions whatsoever Well things don t work that way So let s take a look at how it interacts with different techniques and aspects of software development Separation of Concerns SoC Separation of Concerns is an old technique where we separate computer system into distinct sections where each addresses separate concerns Most of the time this means that we have separate “layers Some of examples include IP Stack which is layered uses different protocols at different layers each taking care of a separate concernHTML or templates CSS and JavaScript in Web development dealing with different aspects of displaying a web page or an applicationModels views and controllers in MVC paradigm when working with many backend frameworksNow when React first came out there was a huge pushback from the community because it violates the Separation of Concerns We started putting together HTML templates or views and JavaScript code controllers Not only that after React got more popular we started to place CSS in components as well CSS in JS like this import styled from styled components Create a component that renders a lt p gt element with blue textconst BlueText styled p color blue lt BlueText gt My blue text lt BlueText gt Now there is some tension between the two But mostly only if you treat everything as a principle not a technique Thinking of it as a principle means that it s non negotiable and it s always right to follow it while technique is something you apply where it makes sense and improves things The recipe for success here is rather simple when your components code is pretty simple it s usually better to be able to see everything at oncebut as the code for a particular component code unit grows more complex at some point it is very useful to be able to understand business logic in isolation without it being tangled with other concerns like templating or stylingso start with something simple and when it grows more hard to understand start separating those concerns in a way that make it easier to understandbut when you separate these concerns to separate files keep them close together so it s still easy to understand whole thing by looking at a single small folder instead of now having to jump around different placesThe key here is using the practice that makes sense in given case not religiously doing the same thing everywhere High Cohesion amp Low CouplingThese two concepts are key to creating maintainable codebases Most of so called principles are just reiterations and reinventions of these and few more concepts Cohesion is basically a measure of how code put in the same code unit is related Coupling is a measure of “how much other code will I have to change if I change X The idea here is that if we put things that belong together high cohesion in a code unit moduleand then ensure that changes inside of that module have low impact on the outside of a module low coupling then our code will be easy to understand you just look at a single place and easy to modify modifications of a module do not trigger cascade of changes Locality of Behaviour means that you put things which work together together Behaviour of a given piece of software is nicely enclosed in a single place making it cohesive It works to increase cohesion of your system and by extension helps with low coupling DRY and cross cutting concernsHere s the thing repeating yourself can sometimes be beneficial But it doesn t mean that you can let repetition run rampant in your system otherwise you ll end up with incohesive unmaintainable ball of mud I m not sure where the idea that LoB somehow collides with DRY comes from but I have two guesses Too much of DRY Basically if someone obsesses over DRY ing one liners Unaddressed cross cutting concerns The first point is pretty simple People sometimes obsess over DRY too much trying to remove each small repetition usually falling into the traps of false abstractions The other one is unaddressed cross cutting concerns Think of things like authentication where instead of calling ensure has permission X you manually load user and check permissions LoB doesn t mean that you can understand whole piece of software without any prior knowledge You need to learn cross cutting concerns and how they work in the system You need to learn the framework you are working with In case of HTMX you need to understand HTMX HTML and general web development to some extent before you can claim that “I can understand this piece by just looking at it Final thoughtsWhile the term was coined in HTMX environment which is frontend LoB is a great way to think about any codebase Asking yourself questions like how much places do I have to go to and check in order to understand this piece is a good way of better understanding maintainability of your code |
2023-01-25 13:02:10 |
海外科学 |
NYT > Science |
Where is Physics Headed (and How Soon Do We Get There)? |
https://www.nytimes.com/2023/01/24/science/physics-cosmology-astronomy.html
|
headed |
2023-01-25 13:40:24 |
ニュース |
BBC News - Home |
Two or three Met officers to face court a week, commissioner says |
https://www.bbc.co.uk/news/uk-england-london-64400235?at_medium=RSS&at_campaign=KARANGA
|
rowley |
2023-01-25 13:15:50 |
ニュース |
BBC News - Home |
Elle Edwards: Shooting victim's family urge people to live with hope |
https://www.bbc.co.uk/news/uk-england-merseyside-64398396?at_medium=RSS&at_campaign=KARANGA
|
merseyside |
2023-01-25 13:50:35 |
ニュース |
BBC News - Home |
Rory McIlroy and Patrick Reed snub at Dubai Desert Classic escalates |
https://www.bbc.co.uk/sport/golf/64399598?at_medium=RSS&at_campaign=KARANGA
|
Rory McIlroy and Patrick Reed snub at Dubai Desert Classic escalatesRory McIlroy says Patrick Reed is not living in reality after the American tried to chat in Dubai despite his lawyers serving him a court summons on Christmas Eve |
2023-01-25 13:07:01 |
コメント
コメントを投稿